我有一个完整的游戏对象列表,我试图对其进行遍历并一次生成一个。当一个新的游戏对象产生时,我希望旧的对象消失。但是,此刻我的代码生成了整个游戏对象列表,而不是一个元素。
有人可以看看我的代码,看看我在做什么错吗?
if(GUI.Button(new Rect(10,130,100,50), "Forward"))
{
for( int i = 0; i < object_List.Count; i++)
{
Instantiate((GameObject)object_List[i]);
}
}
如果我对您的理解正确,则您将尝试在每次按下按钮时实例化一个对象,同时删除当前生成的对象。创建一个私有作用域变量来存储您当前的索引:
private int index = 0;
然后,您可以一次在一个对象上实例化:
if(GUI.Button(new Rect(10,130,100,50), "Forward"))
{
if (index > 0 && object_List[index] != null)
{
Destroy((GameObject)object_List[index]);
}
Instantiate((GameObject)object_List[index]);
index ++;
}
您只需要检查索引是否实际上大于列表,就不会出现IndexOutOfBounds异常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句