Unity3d Unity 2D SetActive()不工作

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

在这里,我使用SetActive(true)来启用我的游戏对象,但它不起作用。我尝试使用各种函数和对象来启用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);
            }
一部分来自:

如果找不到名为的游戏对象,则返回null。如果名称 包含“/”字符,它将像路径一样遍历层次结构 名字此函数仅返回活动的游戏对象。

您可能需要在脚本中引用游戏对象作为参数。通过这种方式,您可以引用游戏对象(无论它是否处于活动状态),然后它应该可以工作。

您使用过:

lost.active = false;

但最主要的是:

lost.enabled = false;

定义“不工作”-实际发生了什么?试着调试代码。使用断点可能是错误的。您的代码逻辑一定有问题。调用set active只会将localActive标志设置为您在函数中给定的值。如果父游戏对象是已停用的,则所有子游戏对象都不会处于活动状态
lost.enabled = false;