Unity 2D SetActive()不起作用

时间:2015-07-12 17:38:39

标签: unity3d c#-3.0

这里我使用SetActive(true)来启用我的gameObject,但它不起作用。我尝试使用各种函数和对象,可以启用我的gameObj,如代码中所示。但没有任何工作。虽然当我设置setActive(false)时,它可以工作,但不是setActive(true)。我不知道原因。有人可以帮我吗?顺便说一句,我使用的是Unity 4.3.4版本。

if (paddle.life == 1) {  
                GameObject life_2 = GameObject.Find ("life2");
                GameObject lost = GameObject.Find("lostlife");
                life_2.SetActive (false);
                lost.SetActive(true);
                //lost.active = true;
                //lost.renderer.enabled = true;(why null ref)

                //after some secs disable the message
                //Destroy(lost, 4);
            }

2 个答案:

答案 0 :(得分:1)

来自unity doc for GameObject.Find的部分:

  

如果找不到具有名称的游戏对象,则返回null。如果名字   包含一个'/'字符,它将像路径一样遍历层次结构   名称。 此功能仅返回活动的游戏对象。

您可能需要在脚本中引用gameObject作为参数。这样你就可以引用gameObject(无论它是否处于活动状态),它应该可以正常工作。

答案 1 :(得分:0)

你曾经使用过:

lost.active = false;

lost.renderer.enabled = false;

但主要的是:

lost.enabled = false;