Unity3d Unity 2D SetActive()不工作
在这里,我使用SetActive(true)来启用我的游戏对象,但它不起作用。我尝试使用各种函数和对象来启用gameObj,如代码中所示。但一切都不起作用。虽然当我设置setActive(false)时,它可以工作,但setActive(true)则不能工作。我不知道原因。有人能帮我吗?顺便说一下,我使用的是Unity 4.3.4版本Unity3d Unity 2D SetActive()不工作,unity3d,c#-3.0,Unity3d,C# 3.0,在这里,我使用SetActive(true)来启用我的游戏对象,但它不起作用。我尝试使用各种函数和对象来启用gameObj,如代码中所示。但一切都不起作用。虽然当我设置setActive(false)时,它可以工作,但setActive(true)则不能工作。我不知道原因。有人能帮我吗?顺便说一下,我使用的是Unity 4.3.4版本 if (paddle.life == 1) { GameObject life_2 = GameObject.Find ("l
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);
}
一部分来自:
如果找不到名为的游戏对象,则返回null。如果名称
包含“/”字符,它将像路径一样遍历层次结构
名字此函数仅返回活动的游戏对象。
您可能需要在脚本中引用游戏对象作为参数。通过这种方式,您可以引用游戏对象(无论它是否处于活动状态),然后它应该可以工作。您使用过:
lost.active = false;
及
但最主要的是:
lost.enabled = false;
定义“不工作”-实际发生了什么?试着调试代码。使用断点可能是错误的。您的代码逻辑一定有问题。调用set active只会将localActive标志设置为您在函数中给定的值。如果父游戏对象是已停用的,则所有子游戏对象都不会处于活动状态
lost.enabled = false;