我想知道是否有人可以向我解释如何在 Unity 运行时更新列表?
例如,我有一本法术书,里面有 3 个法术,当我将它们拖到我的操作栏时,它们会重新成为它的父级,我想要做的是在操作栏变换下获取每个孩子的列表,
我的问题是,如果我在更新中尝试以下类似的操作,它实际上会在哪里做这样的事情,它会多次添加那里的任何东西,我可以理解,因为更新每帧都会运行..
list = actionbarui.GetComponent(UIGrid).GetChildList();
for(var i =0;i < list.size; i++)
{
buttonList.Add(list[i].gameObject);
}
如果我为按钮添加一个回调,以便每当它们被拖放时,它都会运行上面的代码并添加东西,例如,如果你只拖动一个“咒语”,它将循环一次,这很好,但是一旦您添加另一个,它就会循环三遍,也就是说,它已经有一个,然后再次添加相同的一个,再加上刚刚被拖动的新按钮,总共 3 次。
我尝试将代码更改为
list = actionbarui.GetComponent(UIGrid).GetChildList();
for each(var child : Transform in list.GetEnumerator())
{
buttonList.Add(child.gameObject);
}
但是这个简单并没有添加任何东西,我不确定如何在列表被拖拽时保持更新,有人可以解释一下这是如何实现的吗?
请忽略第二个“列表”代码,它将“BetterLists”作为 NGUI 的一部分实现,因此不遵循标准列表方法。
感谢您阅读