在层次结构中启用对象父级

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 变量。然后,按类型找到对象并访问它的变量,启用它。