private void Awake() { instance = this; terrainDisplay = GetComponent <TerrainDisplay>(); noiseScale = NewWorldData.countDictionary[TerrainSettingType.terrainNoiseScale]; octaves = (int)NewWorldData.countDictionary[TerrainSettingType.terrainOctaves]; persistance = NewWorldData.countDictionary[TerrainSettingType.terrainPersistance]; lacunarity = NewWorldData.countDictionary[TerrainSettingType.terrainLacunarity]; }
public void DrawMapInEditor() { Terrain terrain = GenerateTerrain(Vector2.zero); TerrainDisplay display = FindObjectOfType <TerrainDisplay>(); if (drawType == DrawType.NoiseMap) { display.DrawNoiseMap(terrain); } else if (drawType == DrawType.Mesh) { display.DrawMesh(MeshGenerator.GenerateTerrainMesh(terrain, new BiomeHelper(this.biomes), meshHeightMultiplier, meshHeightCurve, editorLevelOfDetail)); } }
public override void OnInspectorGUI() { TerrainDisplay script = (TerrainDisplay)target; if (DrawDefaultInspector() && script.autoUpdate) { script.SetTerrain(); } if (GUILayout.Button("Generate Terrain")) { script.SetTerrain(); } }
public void GenerateMap() { float[,] noiseMap = Noise.GenerateNoise(mapWidth, mapHeight, seed, noiseScale, octaves, persistance, lacunarity, offset); Color[] colorMap = new Color[mapWidth * mapHeight]; for (int x = 0; x < mapWidth; x++) { for (int y = 0; y < mapHeight; y++) { float currentHeight = noiseMap[x, y]; for (int i = 0; i < regions.Length; i++) { if (currentHeight <= regions[i].height) { colorMap[y * mapWidth + x] = regions[i].color; break; } } } } TerrainDisplay display = FindObjectOfType <TerrainDisplay>(); if (drawMode == DrawMode.NoiseMap) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(noiseMap)); } else if (drawMode == DrawMode.ColorMap) { display.DrawTexture(GenerateTexture(colorMap)); } else if (drawMode == DrawMode.Mesh) { display.DrawMesh(MeshGenerator.GenerateMesh(noiseMap, meshHeightMultiplier, meshHeightCurve), GenerateTexture(colorMap)); } else if (drawMode == DrawMode.Terrain) { display.DrawTerrain(TerrainGeneration.GenerateTerrain(terrainData, noiseMap), regions); } }
private void Awake() { terrainDisplay = GetComponent <TerrainDisplay>(); instance = this; }