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 }