我们如何在编辑模式下破坏子对象(Unity3d)?

时间:2016-06-30 10:10:38

标签: c# unity3d

这有点奇怪,但是如果你试图用DestroyImmediate函数来破坏子对象,那么你将得到不可预知的结果。

在我看来,Unity并没有摧毁所有的孩子,只为其中一半孩子做了这件事。

        foreach(var child in parent)
        {
            DestroyImmediate(child);
        }

2 个答案:

答案 0 :(得分:3)

这就是我在编辑模式下摧毁孩子的方法:

for (int i = this.transform.childCount; i > 0; --i)
    DestroyImmediate(this.transform.GetChild(0).gameObject);

答案 1 :(得分:2)

正如一个人在链接中考虑的那样,可以创建临时数组/列表。

例如:

        var tempArray = new GameObject[parent.transform.childCount];

        for(int i = 0; i < tempArray.Length; i++)
        {
            tempArray[i] = parent.transform.GetChild(i).gameObject;
        }

        foreach(var child in tempArray)
        {
            DestroyImmediate(child);
        }

帮助我的链接: http://answers.unity3d.com/answers/678073/view.html