Hello everyone!
i’m wondering about how do you make a tile editor. i’ve stumbled on a plugin in the Assets store.
and i wanna develop my own, to use in the game. it’s better than paying 25$
Thanks!
Hello everyone!
i’m wondering about how do you make a tile editor. i’ve stumbled on a plugin in the Assets store.
and i wanna develop my own, to use in the game. it’s better than paying 25$
Thanks!
Hi
I have created one Tile manager as given below, you can edit it depending upon your requirement…
using UnityEngine;
using System.Collections;
// This class will provide tiles position, status, type
public class TilesManager : MonoBehaviour
{
float mfXRatio;
float mfYRatio;
public int _iNoOfRows;
public int _iNoOfCols;
public float _LeftMargin;
public float _DownMargin;
public float _XSpace;
public float _YSpace;
Vector3 [,]_VectDotsPosition;
public static TilesManager _tilesManager;
TileType[,] meTilesType;
// Use this for initialization
void Start ()
{
_tilesManager = this;
mfXRatio = Screen.width/768f;
mfYRatio = Screen.height/1024f;
createTiles(_iNoOfRows, _iNoOfCols, _LeftMargin, _DownMargin, _XSpace, _YSpace);
}
// To create Tiles
public void createTiles(int piNoOfRows, int piNoOfCols, float pfLeftMargin, float pfDownMargin, float pfXSpace, float pfYSpace)
{
_VectDotsPosition = new Vector3[piNoOfRows, piNoOfCols];
InitializeTileType();
for(int i = 0; i < piNoOfRows; i++)
{
for(int j = 0; j < piNoOfCols; j++)
{
_VectDotsPosition[i,j] = new Vector3((pfLeftMargin + pfXSpace * i) * mfXRatio, (pfDownMargin + pfYSpace * j) * mfYRatio, 0);
}
}
}
void InitializeTileType()
{
meTilesType = new TileType[_iNoOfRows, _iNoOfCols];
for(int i = 0; i < _iNoOfRows; i++)
{
for(int j = 0; j < _iNoOfCols; j++)
{
meTilesType[i, j] = TileType.BREAKABLE_TILE;
}
}
// meTilesType[3, 6] = TileType.UNBREAKABLE_TILE;
// meTilesType[0, 6] = TileType.EMPTY_TILE;
// meTilesType[7, 7] = TileType.EMPTY_TILE;
// meTilesType[4, 3] = TileType.UNBREAKABLE_TILE;
// meTilesType[4, 2] = TileType.UNBREAKABLE_TILE;
}
// Returns tile position
public Vector3 GetTilePosition(int piIndexX, int piIndexY)
{
if(piIndexX >= _iNoOfCols || piIndexX < 0 || piIndexY >= _iNoOfRows || piIndexY < 0)
return Vector3.zero;
return _VectDotsPosition[piIndexX, piIndexY];
}
public void SetTileType(int piIndexX, int piIndexY, TileType peType)
{
meTilesType[piIndexX, piIndexY] = peType;
}
public TileType GetTileType(int piIndexX, int piIndexY)
{
return meTilesType[piIndexX, piIndexY];
}
}
public enum TileType
{
BREAKABLE_TILE, // A dot can move to this tile
UNBREAKABLE_TILE, // A dot cant move to this tile, the dot will pass through beside tiles
EMPTY_TILE, // A dot will pass through this tile if next to this empty tile is breakable
BLOCKED_TILE,
BLOCKED_TILE_TYPE1,
BLOCKED_TILE_TYPE2,
BLOCKED_TILE_TYPE3,
BLOCKED_TILE_TYPE4,
};