public static void ApplyMeshTileChanges(this TileLayerRenderer mapTileLayerRenderer) { foreach (var chunk in mapTileLayerRenderer.chunks) { chunk.ApplyMeshTileChanges(); } }
public static void RefreshAllTiles(this TileLayerRenderer mapTileLayerRenderer) { foreach (var chunk in mapTileLayerRenderer.chunks) { chunk.RefreshAllTiles(); } }
public void Build() { TileMap tilemap = TmxParser.Parser(Application.dataPath + TmxFileRelativePath); List <Layer> layers = tilemap.Layers; int index = 0; for (int i = 0; i < layers.Count; i++) { Layer layer = layers[i]; if (layer.GetType() == typeof(TileSetLayer)) { TileLayerRenderer tilelayer = Instantiate(Prefab); tilelayer.transform.position = new Vector3(transform.position.x, transform.position.y, -index); tilelayer.TmxFileRelativePath = TmxFileRelativePath; tilelayer.FilterMode = FilterMode; tilelayer.WrapMode = WrapMode; tilelayer.TileSet = TileSet; tilelayer.IndexLayer = index; tilelayer.transform.parent = transform; index++; } else if (layer.GetType() == typeof(ObjectGroupLayer)) { // TODO } else if (layer.GetType() == typeof(ImageLayer)) { // TODO } } }
public static int GetChunkIndex(this TileLayerRenderer mapTileLayerRenderer, int x, int y) { var chunkColumn = Math.Floor(x / TileLayerRenderer.chunkThreshold); var chunkRow = Math.Floor(y / TileLayerRenderer.chunkThreshold); var chunkIndex = chunkColumn + (chunkRow * mapTileLayerRenderer.chunkColumns); return(chunkIndex); }
public static void SetTileID(this TileLayerRenderer mapTileLayerRenderer, int x, int y, uint gid, bool flipX = false, bool flipY = false, bool flipDiagonal = false) { var chunkIndex = mapTileLayerRenderer.GetChunkIndex(x, y); var chunkTileX = x % TileLayerRenderer.chunkThreshold; var chunkTileY = y % TileLayerRenderer.chunkThreshold; mapTileLayerRenderer.chunks[chunkIndex].SetTileID(chunkTileX, chunkTileY, gid, flipX, flipY, flipDiagonal); }