C#:如何将GameObject数组转换为Transforms的列表或数组

时间:2018-04-02 14:25:26

标签: c# arrays list transform gameobject

这是我的代码:

GameObject[] targets;
List<Transform> transformlist;

void Start () {
    targets = GameObject.FindGameObjectsWithTag("target");
    Debug.Log(targets.Length);
    foreach (GameObject obj in targets)
    {
        Transform transform = obj.transform;
        transformlist.Add(transform);
    }
    Debug.Log(transformlist.Count);

}

我需要这样做,因为我希望我的相机指向最近的游戏对象,我稍后在我的脚本中写道。我所尝试的内容(数组或列表)并不重要

  

&#34; NullReferenceException:对象引用未设置为的实例   对象&#34;

但是,我的第一个"Debug.Log(targets.length)"返回5400,实际的游戏对象数量为&#34;目标&#34;标签,所以我知道它至少走得那么远。

这是复杂的事情还是我只是愚蠢? 非常感谢所有帮助的人。

1 个答案:

答案 0 :(得分:1)

在foreach之前:

transformlist = new List<Transform>();

内在的foreach:

Transform transform = obj.transform;
transformlist.Add(transform);