【发布时间】:2019-07-10 18:24:01
【问题描述】:
目前我遇到了一个问题,我将一个游戏对象添加到一个新列表 () 但是当我清除列表时,我无法将列表大小恢复为 0。我收到一个缺失(游戏对象)并且列表大小仍然是“1”。
我尝试了 list.clear() 方法,但接收到的大小为 1 并且缺少(游戏对象)。我还尝试了一个 forloop 来获取计数,然后是 RemoveAt(i) 方法,但接收相同。
我正在使用 Unity 的 Inspector 直观地查看此问题。
例子:
public GameObject Object;
public List<GameObject> ObjectList = new List<GameObject>();
public void AddObjectToList()
{
ObjectList.Add(Object);
}
public void RemoveObjectsFromList()
{
//Attempt 1
ObjectList.Clear();
//Attempt 2
for (int i = 0; i < ObjectList.Count; ++i)
{
ObjectList.RemoveAt(i);
}
}
期望从列表中清除游戏对象并将列表大小返回为 0。
【问题讨论】:
-
您是否尝试过在 RemoveObjectsFromList 方法中重新实例化您的列表?
-
你不应该这样做@davedno .. Clear 会清空列表.. 鉴于这没有达到 OP 的要求,建议他们也希望删除这些对象
-
@davedno Like this " ObjectList = new List
(); " ? -
@BugFinder 同意,但 OP 已经尝试过这些方法,所以我想覆盖基础。谢谢。
-
ObjectList在您的示例中属于List类型。这是您写的类型,还是拼写错误,应该是List<GameObject>类型?如果是这样,Clear将从List<T>中删除对象。您查看的哪个属性表明列表中有一项?