Esempio n. 1
0
    void BuildTerrainBase()
    {
        numberOfCellsX = Mathf.FloorToInt(mapWidth / cellSize);
        numberOfCellsY = Mathf.FloorToInt(mapHeight / cellSize);

        for (int i = 0; i < numberOfCellsX; i++)
        {
            for (int j = 0; j < numberOfCellsY; j++)
            {
                Vector2 cellPosition = new Vector2(transform.position.x - (mapWidth / 2) + (cellSize / 2) + (cellSize * i),
                                                   transform.position.y - (mapHeight / 2) + (cellSize / 2) + (cellSize * j));

                TerrainCell newCell = new TerrainCell(cells.Count, cellPosition, cellSize, tilemapTerrain, tilesInitialTerrain);
                cells.Add(newCell);
            }
        }

        if (groundData)
        {
            groundData.ProceduralGeneration(tilemapGround, mapWidth + (mapWidthOffset * 2), mapHeight + (mapHeightOffset * 2), TileSortingMethod.Sequential);
        }
        #if UNITY_EDITOR
        if (!groundData)
        {
            Debug.LogError("No ground layer settings assigned, skipping ground texture procedural generation.");
        }
        #endif

        if (environmentData)
        {
            environmentData.ProceduralGeneration(tilemapEnvironment, mapWidth, mapHeight, TileSortingMethod.Random, new Tilemap[] { tilemapBuilder, tilemapTerrain, tilemapWater });
            boundaryEnvironmentData.DrawOutsideBoundaries(tilemapEnvironment, mapWidth, mapHeight, mapWidthOffset, mapHeightOffset, TileSortingMethod.Random);
        }
        #if UNITY_EDITOR
        if (!environmentData)
        {
            Debug.LogError("No environment layer settings assigned, skipping trees procedural generation.");
        }
        #endif

        if (offBoundaryEnvironmentData)
        {
            offBoundaryEnvironmentData.DrawOutsideBoundaries(tilemapOffBoundary, mapWidth + 2, mapHeight + 2, mapWidthOffset - 1, mapHeightOffset - 1, TileSortingMethod.Random);
        }
        #if UNITY_EDITOR
        if (!offBoundaryEnvironmentData)
        {
            Debug.LogError("No offBoundaryEnvironment layer settings assigned, skipping trees procedural generation outside map limits.");
        }
        #endif
    }