1

有没有办法获取所有子游戏对象?我正在尝试GameObject.Find,但这需要名称为string.

4

2 回答 2

5

您可以像这样找到所有子游戏对象:

列个清单,告诉 Unity 类型是 GameObject。

List<GameObject> list = new List<GameObject>(); 

然后使用foreach循环遍历父 GameObject 的变换。请注意,在代码中,我们利用了Transform具有gameObject组件的事实。

foreach(Transform t in transform)
    list.Add(t.gameObject);
于 2014-07-01T02:55:52.230 回答
0

最简单的方法可能是循环遍历您的gameObject.transform,这将遍历每个子变换(然后您可以从中访问它们的 GameObject):

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Example() {
        foreach (Transform child in transform) {
            child.gameObject.name = "foo";
            // or do something else with child.gameObject
        }
    }
}

另一种方法是使用GetComponentsInChildren,但请注意,如果您正在寻找 GameObjects,这也将返回您从中调用它的当前对象。

于 2014-07-01T02:57:23.677 回答