unity 删除列表中多个元素(物体) 并在列表中移除

分类栏目:unity3d教程

185

今天遇到一个问题,
我如果同时删除列表中的两个物体时并在列表中清除时,发现只会删除一个物体,
原因
假如我删除列表前两个元素,
先删除第一个,这个时候在列表中清除掉
然后我所需要删除的第二个物体,这时已经移动到了第一个位置上,所以第二个物体没有被删除掉,

解决方法

倒叙遍历删除
先删第二个,并移除
再删第一个 ,并移除
List<GameObject> books =new List<GameObject>();
 for (int i = books.Count-1; i >=0; i--)
            {
        
                    
                    books[i].DestroyImmediate( );
                    books.Remove(books[i]);
                
            }