This first way of assigning GameObjects to the array works for the entire thing, but why does the second way only work once before it breaks and start throwing typecasting errors? Should they both not do the same thing?
this.cubes[x,y] = Instantiate(cubePrefab, pos, Quaternion.identity) as GameObject;
this.cubes[x,y] = (GameObject)Instantiate(cubePrefab, pos, Quaternion.identity);
Here is the whole body of code:
private GameObject[,] cubes;
public Transform cubePrefab;
void Setup(int numOfCubesX, int numOfCubesY)
{
Vector3 pos = new Vector3(0f,0f,0f);
this.cubes = new GameObject[numOfCubesX, numOfCubesY];
for(int x = 0; x < numOfCubesX; x++)
{
for(int y = 0; y < numOfCubesY; y++)
{
pos.x = x * 1.5f;
pos.y = y * 1.5f;
Debug.Log("making cube at (" + x + "," + y);
this.cubes[x,y] = Instantiate(cubePrefab, pos, Quaternion.identity) as GameObject;
}
}
}