private IEnumerator GenerateMapProcedurally() { // Disable mouse Input while map is generating runtimeBuilder.DisableMouseInputForBuild(); int x = 0; int xSize = 80; int z = 0; int zSize = 80; uteRuntimeBuilder.Tile tile; for (int i = 0; i < xSize * zSize; i++) { // Get Tile from Category by Tile Name tile = runtimeBuilder.GetTileFromCategoryByName(mCraftCategory.name, "water"); // Pass Tile mainObject to RuntimeBuilder runtimeBuilder.SetCurrentTileInstantly(tile.mainObject); // Place Tile at Vector3 position runtimeBuilder.PlaceCurrentTileAtPosition(new Vector3(x - 25f, 0, z - 25f)); if (x > 10 && x < xSize - 10 && z > 10 && z < zSize - 10) { tile = runtimeBuilder.GetTileFromCategoryByName(mCraftCategory.name, "grass"); runtimeBuilder.SetCurrentTileInstantly(tile.mainObject); runtimeBuilder.PlaceCurrentTileAtPosition(new Vector3(x - 25f, 1, z - 25f)); if (Random.Range(0, 10) == 0) { for (int j = 0; j < Random.Range(4, 10); j++) { tile = runtimeBuilder.GetTileFromCategoryByName(mCraftCategory.name, "stone"); runtimeBuilder.SetCurrentTileInstantly(tile.mainObject); runtimeBuilder.PlaceCurrentTileAtPosition(new Vector3(x - 25f, 2 + j, z - 25f)); } } else if (Random.Range(0, 10) == 0) { for (int k = 0; k < Random.Range(2, 5); k++) { tile = runtimeBuilder.GetTileFromCategoryByName(mCraftCategory.name, "dirt"); runtimeBuilder.SetCurrentTileInstantly(tile.mainObject); runtimeBuilder.PlaceCurrentTileAtPosition(new Vector3(x - 25f, 2 + k, z - 25f)); } } } x++; if (x == xSize) { yield return(0); x = 0; z++; } } // Enable mouse Input runtimeBuilder.EnableMouseInputForBuild(); runtimeBuilder.CancelCurrentTile(); }