Beispiel #1
0
 public static void ApplyMeshTileChanges(this TileLayerRenderer mapTileLayerRenderer)
 {
     foreach (var chunk in mapTileLayerRenderer.chunks)
     {
         chunk.ApplyMeshTileChanges();
     }
 }
Beispiel #2
0
 public static void RefreshAllTiles(this TileLayerRenderer mapTileLayerRenderer)
 {
     foreach (var chunk in mapTileLayerRenderer.chunks)
     {
         chunk.RefreshAllTiles();
     }
 }
Beispiel #3
0
    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
            }
        }
    }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }