在层次结构中启用对象父级
Enable object Parent in the hierarchy
如何通过 scrip 启用层次结构中的对象?
void OnCollisionEnter2D (Collision2D colisor)
{
if (colisor.gameObject.tag == "Floor") {
Destroy (gameObject, 0.6f);
} else {
if (colisor.gameObject.tag == "Bee") {
coinCollectSound.Play ();
heart = GameObject.FindGameObjectWithTag ("Hearts").GetComponent<Hearts> () as Hearts;
if (heart.TakeHeart ()) {
Destroy (gameObject);
} else {
//Here i want setActive(true) Object parent in hierarchy called "GameOver"
//And setActive(false) Object in hierarchy Called "Game"
}
}
}
}
我不想为 Game Over 调用不同的场景,但现在我只想启用它。
要禁用 GameObject 的父级,脚本已附加:
transform.parent.gameObject.setActive(true);
要获取特定的游戏对象,请使用 public 变量并在检查器中 link 它们。要提高性能,请避免使用 GameObject.Find.
由于这是一个游戏结束对象,您可能只需调用
GameObject.Find("GameOver").SetActive(true);
GameObject.Find("Game").SetActive(false);
但是,如果您的游戏中有很多对象,这会对性能产生影响。
您应该使用 GameObject.Find("GameOver") 访问 GameOver,但如果它被禁用,您将无法这样做。相反,在引用您想要 SetActive 的对象的已启用脚本上创建一个 public GameObject 变量。然后,按类型找到对象并访问它的变量,启用它。
如何通过 scrip 启用层次结构中的对象?
void OnCollisionEnter2D (Collision2D colisor)
{
if (colisor.gameObject.tag == "Floor") {
Destroy (gameObject, 0.6f);
} else {
if (colisor.gameObject.tag == "Bee") {
coinCollectSound.Play ();
heart = GameObject.FindGameObjectWithTag ("Hearts").GetComponent<Hearts> () as Hearts;
if (heart.TakeHeart ()) {
Destroy (gameObject);
} else {
//Here i want setActive(true) Object parent in hierarchy called "GameOver"
//And setActive(false) Object in hierarchy Called "Game"
}
}
}
}
我不想为 Game Over 调用不同的场景,但现在我只想启用它。
要禁用 GameObject 的父级,脚本已附加:
transform.parent.gameObject.setActive(true);
要获取特定的游戏对象,请使用 public 变量并在检查器中 link 它们。要提高性能,请避免使用 GameObject.Find.
由于这是一个游戏结束对象,您可能只需调用
GameObject.Find("GameOver").SetActive(true);
GameObject.Find("Game").SetActive(false);
但是,如果您的游戏中有很多对象,这会对性能产生影响。
您应该使用 GameObject.Find("GameOver") 访问 GameOver,但如果它被禁用,您将无法这样做。相反,在引用您想要 SetActive 的对象的已启用脚本上创建一个 public GameObject 变量。然后,按类型找到对象并访问它的变量,启用它。