这是我的代码:
ShopButton[] allButtons = FindObjectsOfType<ShopButton> ();
for (int i = 0; i < allButtons.Length; i++)
{
allButtons [i].UpdateButtonState ((GameDataManager.publicInstance.skinAvailability & 1 << allButtons [i - 1].ninjaNumber) == 1 << allButtons [i - 1].ninjaNumber);
}
当我运行它时,这段代码给了我一个IndexOutOfRangeException
。
答案 0 :(得分:2)
我认为原因是因为第一个导致问题的索引。
如果我从1开始,则i-1将为0,因此索引0存在于数组allbuttons中。
显然:如果我是0
,那么i-1
将是-1
;这将导致index out of range exception
,因为所有数组都以索引0
开头并且没有索引-1。 ;
从i = 1
开始,错误将被解决,因为i-1
将是0
,它位于任何数组的索引范围内。
将循环的一部分更改为:
for (int i = 1; i < allButtons.Length; i++)