Beispiel #1
0
        public void CreateMap(GameMapData data)
        {
            size = new Vector2Int(data.Width, data.Height);

            tilemap.Resize(size.x, size.y);

            tiles         = new Tile[size.x, size.y];
            visibilityMap = new VisibilityMap(size.x, size.y);

            DestroyEntites();
            entityMap = new EntityMap(size.x, size.y);

            fovMaterial.SetVector("_FogSize", new Vector4(Width * TileSize, Height * TileSize, 0, 0));
            fovMaterial.SetTexture("_FogMapA", visibilityMap.texturePrev);
            fovMaterial.SetTexture("_FogMapB", visibilityMap.textureCur);

            //create tiles
            for (int x = 0; x < size.x; x++)
            {
                for (int y = 0; y < size.y; y++)
                {
                    var brush = data.Get(x, y) == 0 ? floorBrush : wallBrush;

                    tilemap.SetTile(x, y, brush);
                }
            }

            for (int x = 0; x < size.x; x++)
            {
                for (int y = 0; y < size.y; y++)
                {
                    tiles[x, y] = tilemap.GetTileInstance(x, y).GetComponent <Tile>();
                }
            }

            pathfindingNodes = new TileGridNodes(this);

            RecalulatePathfinding();
        }