无法将GameObjects添加到已定义的列表

时间:2017-09-16 16:16:34

标签: c# unity3d

我正在努力解决这个问题2天,我正在尝试将go GameObject添加到列表changedObjects中,但我不知道为什么changedObjects是{{1} }}

我试过了:

Null

比我用GameObject从另一个类调用public class UndoObject : MonoBehaviour { private List<GameObject> changedObjects; void Start () { changedObjects = new List<GameObject>(); } public void Push(GameObject go) { Debug.Log(changedObjects); if (go != null) { changedObjects.Add(go); } } public List<GameObject> GetAll () { return changedObjects; } }

但是,它一直在抛出错误:

  

NullReferenceException:未将对象引用设置为对象的实例   UndoObject.Push(UnityEngine.GameObject go)(在Assets / Standard Assets / Scripts / UndoObject.cs:15)   Manager.FixedUpdate()(在Assets / Standard Assets / Scripts / Manager.cs:73)

UndoObject.cs:15 UndoObject.Push

1 个答案:

答案 0 :(得分:2)

我认为您直接调用push方法而不调用start()来初始化数组,但是您可以在push方法中添加它以确保数组始终初始化。

 public void Push(GameObject go) {
        if (changedObjects == null)
        { 
           changedObjects = new List<GameObject>();
        }
        if (go != null) {
            changedObjects.Add(go);
        }
 }