【问题标题】:Unity gameoject array set active not workingUnity游戏对象数组setactive不起作用
【发布时间】:2017-11-18 18:38:48
【问题描述】:

我正在 Unity5 中做一个 2D 游戏项目。现在,我在将我的 gameojects 数组设置为 false 时遇到问题。我已将此脚本附加到 an object in my scene and attached 2 character gameobject to it. 我尝试过:

public GameObject[] charactersArray;

void Start ()
{
    foreach (GameObject go in charactersArray)
    {
        go.SetActive(false);
        Debug.Log(go.active);
    }
}

虽然控制台输出为假,但我的游戏对象仍然出现在我的游戏中。

所以,我试着在开始时查看我的游戏对象处于活动状态:

public GameObject[] charactersArray;

void Start ()
{
    foreach (GameObject go in charactersArray)
    {
        Debug.Log(go.active);
    }

}

对于我所有的游戏对象,控制台输出仍然是“假”。

我的代码有什么问题吗?我错过了什么吗?

【问题讨论】:

    标签: c# arrays unity3d gameobject


    【解决方案1】:

    发生这种情况是因为您没有修改场景中的 GameObjects(Mr Knight 和 Ms Sorceress)实例。相反,您正在修改两个 GameObjects 的预制件。

    以下是您的对象在编辑器中的外观,这表明您正在插槽中使用预制件。

    如果您使用的是非预制对象,这就是图像应该是什么样子

    只需将游戏对象(Mr Knight 和 Ms Sorceress)从 Hierarchy 选项卡分别拖到 Element 0Element 1。这应该可以。

    请注意,如果 Hierarchy 选项卡中的 Objects 也是从预制件创建的,您将看到上面的第一张图片而不是第二张图片,但您需要像我上面提到的那样重新添加它们,因为这看起来像您有预制件在插槽中,而不是在 Hierarchy 选项卡中的场景中的实际对象。

    【讨论】:

    • 是的,现在可以使用了,感谢您的帮助!直到你指出来才意识到哈哈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多