- Home /
Question by
jfielding74 · Dec 06, 2014 at 08:59 PM ·
instantiateobjectarraystiles
InvalidCastException: Cannot cast from source type to destination type - can't seem to instantiate objects into an array!
The following returns an Invalid Cast Exception. I'm trying to instantiate a load of tiles into a 2d array so I can refer to them easily. The line
tileTable[activeX,activeY] = (Tile)Instantiate(Tile, new Vector3(activeX,activeY,0), Quaternion.identity);
is where the error is reported.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class TileEngine : MonoBehaviour {
public Vector2 mapSize;
public GameObject Tile;
Tile[,] tileTable;
Vector2 chunkCodes;
// Use this for initialization
void Start () {
tileTable = new Tile[(int)mapSize.x,(int)mapSize.y];
chunkCodes = new Vector2((int)mapSize.x/10,(int)mapSize.y/10);
Debug.Log (chunkCodes);
Debug.Log (tileTable.Length);
BuildMap();
}
void BuildMap(){
Vector2 chunkCode = new Vector2(0,0);
for (int x = 0; x <= chunkCodes.x; x++){
chunkCode.y = 0;
for (int y = 0; y <= chunkCodes.y; y++){
MakeChunk(chunkCode);
chunkCode.y = chunkCode.y + 10;
}
chunkCode.x = chunkCode.x + 10;
}
}
void MakeChunk (Vector2 activeChunk){
Debug.Log (activeChunk);
int activeX;
int activeY;
for (int x = 0; x < 10; x++){
activeX = x + (int)activeChunk.x;
for (int y = 0; y < 10; y++){
activeY = y + (int)activeChunk.y;
tileTable[activeX,activeY] = (Tile)Instantiate(Tile, new Vector3(activeX,activeY,0), Quaternion.identity);
tileTable[activeX,activeY].chunkCode = activeChunk;
}
}
}
}
Any help is much appreciated.
Thanks
Comment
Your answer
Follow this Question
Related Questions
Adding prefabs to a list or an array from a folder and instantiating them. 2 Answers
How do you spawn a random object from an array. 2 Answers
Instantiate problems 1 Answer
How to enable object by clicking on the button through the Massive(array)? 0 Answers
Calling 2 specific random float numbers in random.range using array not working! 2 Answers