我如何抓住所有子游戏对象?

时间:2014-07-01 02:35:51

标签: c# unity3d gameobject

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

2 个答案:

答案 0 :(得分:5)

你可以找到你喜欢的所有孩子GameObjects:

制作一个列表,告诉Unity类型是GameObject。

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

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

foreach(Transform t in transform)
    list.Add(t.gameObject);

答案 1 :(得分:0)

最简单的方法可能是遍历您的gameObject.transform,它将遍历每个子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,这也将返回你正在调用它的当前对象。