public TerrainSettingContainer ReturnTerrainSettings(Biomes biomes) { TerrainSettingContainer terrainSettingContainer = new TerrainSettingContainer(); switch (biomes) { case Biomes.Planes: terrainSettingContainer.NoiseMin = 100f; terrainSettingContainer.NoiseMax = 150f; terrainSettingContainer.MaxHeight = 200f; terrainSettingContainer.MaxAngle = 1f; terrainSettingContainer.Textures = GetTextures(Biomes.Planes); break; case Biomes.Hills: terrainSettingContainer.NoiseMin = 90f; terrainSettingContainer.NoiseMax = 90f; terrainSettingContainer.MaxHeight = 200f; terrainSettingContainer.MaxAngle = 1f; terrainSettingContainer.Textures = GetTextures(Biomes.Hills); break; case Biomes.Mountain: terrainSettingContainer.NoiseMin = 100f; terrainSettingContainer.NoiseMax = 200f; terrainSettingContainer.MaxHeight = 200f; terrainSettingContainer.MaxAngle = 1f; terrainSettingContainer.Textures = GetTextures(Biomes.Mountain); break; default: break; } return(terrainSettingContainer); }
public static GameObject CreateTerrain(Vector3 Position, Terrain PreviousTerrain = null, Direction direction = Direction.UP, Dictionary <Direction, GameObject> Neighbors = null, TerrainBiome.Biomes Biome = TerrainBiome.Biomes.Planes ) { TerrainSettingContainer BiomeSettings = GameMaster.gameMaster.terrainBiome.ReturnTerrainSettings(Biome); TerrainData NewTerrainData = new TerrainData(); // TerrainData settings NewTerrainData.heightmapResolution = GameMaster.gameMaster.terrainSettings.HeightMapResolution; NewTerrainData.size = new Vector3(GameMaster.gameMaster.terrainSettings.MapSize.x, BiomeSettings.MaxHeight, GameMaster.gameMaster.terrainSettings.MapSize.z); NewTerrainData.TerrainTextures(BiomeSettings.Textures); NewTerrainData.GenerateHeights(Position, direction, BiomeSettings.NoiseMin, BiomeSettings.NoiseMax); NewTerrainData.ModifyHeightsForBiome(Biome); NewTerrainData.GenerateAlphaMap(); if (Biome != TerrainBiome.Biomes.Mountain) { NewTerrainData.GenerateFoliage(); NewTerrainData.GenerateGrass(); } // Texture Settings GameObject NewTerrain = Terrain.CreateTerrainGameObject(NewTerrainData); // GameObject Settings Vector3 NewTerrainPosition = new Vector3(Position.x, Position.y, Position.z); NewTerrain.transform.position = NewTerrainPosition; NewTerrain.AddComponent <TerrainScript>(); // Terrain Settings Terrain ThisTerrain = NewTerrain.GetComponent <Terrain>(); ThisTerrain.detailObjectDistance = 250; GameMaster.gameMaster.terrainManager.TerrainPositions.Add(Position, NewTerrain); return(NewTerrain); }