- Home /
2d isometric tile-based game system help?
Hi there,
I am working on a 2d tile based system with a 3d camera set at a 45 degree angle to look isometric. I have the following code working which will generate the level.
some Code
var blockPiece:GameObject[]; // fill this
var debugMat:Material;
var pieces: GameObject[ , ];
var width = 20;
var length = 20;
private var levelArray:int[] = [7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,6,6,1,1,1,1,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
function Awake() {
generateTiles();
}
function generateTiles(){
pieces = new GameObject[width, length]; // creates the object array
for(z=0; z<length; z++){
for(x=0; x<width; x++){
var prefab: GameObject;
// Set pefab to be inLibrary prefab based on level array
prefab = blockPiece[levelArray[z*width + x]];
// Add piece to stage
pieces[x,z] = Instantiate (prefab, Vector3(x,1,(z*-1)), Quaternion.Euler(0, 180, 0));
//pieces[x, z].renderer.material = debugMat;
}
}
}
function Start(){
// Do rotateBlocks function
}
Everything works in terms of generating the level, feel free to use the code if you like.
My problem is that I don't know where to go from here. How do I set certain pieces to be corners?. I also can't seem to find a good way to access and know a blocks type for running other commands. Any ideas?
Answer by MikeNewall · May 18, 2013 at 01:55 AM
You need a tile class which holds information about the tile such as its type, material, if it's solid, etc...
Attach that script to your tile prefab, and then each instance of your tile will hold information about its self which you can access.
Your answer
Follow this Question
Related Questions
Accessing local system ( File Browser ) 2 Answers
2d sprite alignement cause lines between sprites 2 Answers
2D Tiles Raycast Problem 1 Answer
2D Tile Texture Size? 2 Answers
Unity 2D Top Down Jump 1 Answer