所以我有一个像这样的简单代码:
public void OnGUI
{
if (this.myDict.Count > 0)
{
//blah
foreach (GameObject gameObject in new List<GameObject>(this.myDict.Keys))
{
//keep stuff up to date
}
}
}
onGUI是Unity的默认方法,它可以更新每一帧(在这种情况下,当我们在每帧的水平或稍低的位置进行迭代时,停止移动球门柱的情况并不重要)。而且我需要经常保持数据最新,它是实时列表,但同时我需要能够修改字典(添加/删除)。现在,一些随机的人告诉我,每次分配(?)新列表的这个foreach是一个巨大的内存泄漏和坏,但当被问及为什么以及他们如何无法解释。我做了一些谷歌搜索但结果没有结果,我发现一些标记为“有效”的例子使用了类似的方法。
我非常困惑 - 有更好的方法吗?我应该将List定义为全局变量并将其用作时间仓而不是每次都定义本地变量吗?它会不会重要?