首页 > 解决方案 > 统一生成一个空的tilemap

问题描述

我想创建一个 TD 游戏,其中地图是在运行时生成的 tilemap。目前我正在尝试创建带有空瓷砖的瓷砖地图,然后,我将使用 A-star 算法来制作路径。目前,我在下面写了这个函数。一切正常,当游戏开始时我可以在编辑器中看到网格和瓷砖地图,但瓷砖不存在......

   void initTilemap(){
        GameObject grid = new GameObject("Grid");
        GameObject tilemap = new GameObject("Tilemap");
        grid.AddComponent<Grid>();
        tilemap.AddComponent<Tilemap>();
        tilemap.transform.SetParent(grid.transform);
        collidableMap = tilemap.GetComponent<Tilemap>();
        collidableMap.ClearAllTiles(); 
        Tile tile = (Tile) Resources.Load("Tile/grass");
        for (int x = 0; x < 10; x++)
            {
            for (int y = 0; y < 10; y++)
            {
                Vector3Int p = new Vector3Int(x,y,0);

                // GameObject tile = new GameObject("TileBase");
                collidableMap.SetTile(p, tile);
            }
        }

    }

标签: c#unity3d

解决方案


修改代码后,您可能需要在 TileMap 上调用RefreshAllTiles() 。


推荐阅读