Unity 5 2DArray,对象池

Unity 5 2DArray, Object pooling

我正在尝试为我的 WaveSpawner 创建一个对象池系统。

这是我得到的(objectPool 是一个二维数组):

objectPool = new GameObject[wave.Length,0];

//set columns
for(int i = 0;i< objectPool.Length;i++)
{
    objectPool = new GameObject[i,wave[i].numberToSpawn]; //set row for ech column
}


for (int p = 0; p < wave.Length; p++)
{
    for(int i = 0;i<wave[p].numberToSpawn;i++)
    {
        GameObject gbj = Instantiate(wave[p].spawnObject);
        gbj.transform.position = RandomizePositions();
        gbj.SetActive(false);
        objectPool[p,i]= gbj; //fill 2D array
    }
}

这就是我得到的错误;

数组索引超出范围。

objectPool = new GameObject[wave.Length,0];

您正在创建第二维大小为 0 的数组。

objectPool = new GameObject[wave.Length,0];

第二个维度的大小为 0

for(int i = 0;i< objectPool.Length;i++)

Length return所有维度的大小,使用array.GetLength();

您应该阅读如何使用二维数组

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/multidimensional-arrays