unity3d GameObject已被激活或停用

时间:2016-11-18 15:08:30

标签: unity3d

在Unity中,在运行时,我在禁用父对象时将其从父对象中分离出来。正在将错误记录到控制台" GameObject已被激活或停用"。

显然这是因为我在同一帧中更改了父项,而该子项正在被停用。即使我在层次结构中看到子项已成功分离,也会发生这种情况。所以,从我的观点来看,一切正常。

那么,有谁知道这只是一个虚假的错误,是否需要我真正关心的事情?

1 个答案:

答案 0 :(得分:0)

我相信你有一些奇怪的事情,因为这样的错误不会发生,在这里你如何证明它。

采取这个脚本:

using UnityEngine;

public class SyncTest : MonoBehaviour {

    private Transform cube;

    void Start () {
        cube = transform.GetChild(0);   // No tests as I know it's there
    }

    private void OnMouseUpAsButton()
    {
        cube.parent = null;
        gameObject.SetActive(false);
    }

}

然后创建一个球体并将一个立方体作为其子像:

The sphere and its child

然后将脚本附加到球体:

Script attached to the sphere

运行场景,只需点击球体,结果是球体消失,立方体保持不变,不再是孩子,根本不会产生任何错误:

enter image description here

我相信你有一些同步问题,以某种奇怪的方式运行这两个命令,很可能你连续两次调用obj.SetActive(false);