这里我使用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);
}
答案 0 :(得分:1)
来自unity doc for GameObject.Find的部分:
如果找不到具有名称的游戏对象,则返回null。如果名字 包含一个'/'字符,它将像路径一样遍历层次结构 名称。 此功能仅返回活动的游戏对象。
您可能需要在脚本中引用gameObject作为参数。这样你就可以引用gameObject(无论它是否处于活动状态),它应该可以正常工作。
答案 1 :(得分:0)
你曾经使用过:
lost.active = false;
和
lost.renderer.enabled = false;
但主要的是:
lost.enabled = false;