C# Unity3d数组索引超出范围
我无法修复它。有人能帮我修复吗?C# Unity3d数组索引超出范围,c#,unity3d,C#,Unity3d,我无法修复它。有人能帮我修复吗?\u candies在GetCandies()中初始化,但在您的代码中未调用此函数。我怀疑,当被指控的行被执行时,\u candies仍然是空的。对unity一无所知,但是数组[0,1,2]例如lentgh是3,但最后一个索引是2,因为数组索引是基于零的。这可能是原因吗?使用.length-1.Is\u candies.length0是否有可能?@Sami:Random.Range的第二个参数是唯一的上限,除非两个参数相同。(就我个人而言,我会抛出一个例外,但是…
\u candies
在GetCandies()
中初始化,但在您的代码中未调用此函数。我怀疑,当被指控的行被执行时,\u candies
仍然是空的。对unity一无所知,但是数组[0,1,2]例如lentgh是3,但最后一个索引是2,因为数组索引是基于零的。这可能是原因吗?使用.length-1.Is\u candies.length
0是否有可能?@Sami:Random.Range的第二个参数是唯一的上限,除非两个参数相同。(就我个人而言,我会抛出一个例外,但是…)
void FillGrid()
{
for(int x = 0; x < xSize; x++)
{
for(int y = 0; y < ySize; y++)
{
InstantiateCandy(x, y);
}
}
}
void InstantiateCandy(int x,int y)
{
GameObject randomCandy = _candies[Random.Range(0, _candies.Length)];
GameObject newCandy =(GameObject)Instantiate(randomCandy, new Vector3(x, y), Quaternion.identity);
newCandy.GetComponent<GridItem>().OnItemPositionChanged(x, y);
}
void GetCandies()
{
_candies = Resources.LoadAll<GameObject>("Prefabs");
for(int i=0; i< _candies.Length-1;i++)
{
_candies[i].GetComponent<GridItem>().id = i;
}
}
}
GameObject randomCandy = _candies[Random.Range(0, _candies.Length)];