1. ホーム
  2. cp

Unityがエラーを報告します。コレクションが変更されました。列挙操作が実行されない可能性があります。

2022-02-10 01:33:40

//global effects node like burst screen effect Destroyed when switching screens
    List<GameObject> mObjectList = new List<GameObject>();
    public void AddGameObject(GameObject go)
    {
        mObjectList.Add(go);
    }

    public void RemoveGameObject(GameObject go)
    {
        mObjectList.Remove(go);
    }

    public void ClearGameObjectList()
    {
        foreach(GameObject go in mObjectList)
        {
            UnityEngine.GameObject.DestroyImmediate(go);
        }

        mObjectList.Clear();
    }

上記のエラーでプログラムを実行し、コードを確認したところ、Foreach本体の中でCollectionのRemoveメソッド(Addメソッドでも可)が適用されており、理由の詳細はよくわからないのですが、foreachをforに変更すればいいようです。