public void GenerateMap() { //float[,] noiseMap = Noise.GenerateNoiseMap(mapChunkSize, mapChunkSize, noiseScale); //float[,] noiseMap = Noise.GenerateNoiseMap(mapChunkSize, mapChunkSize, seed, noiseScale, octaves, persistence, lacunarity, offset); Noise.GenerateNoiseMap(mapChunkSize, mapChunkSize, seed, noiseScale, octaves, persistence, lacunarity, offset); Color[] colorMap = new Color[mapChunkSize * mapChunkSize]; // color map for the different regions for (int y = 0; y < mapChunkSize; ++y) { for (int x = 0; x < mapChunkSize; ++x) { if (useFalloff) { Noise.noiseMap[x, y] = Mathf.Clamp01(Noise.noiseMap[x, y] - falloffMap[x, y]); } float currentHeight = Noise.noiseMap[x, y]; for (int i = 0; i < regions.Length; ++i) { if (currentHeight <= regions[i].height) { colorMap[y * mapChunkSize + x] = regions[i].color; break; } } } } MapDisplay display = FindObjectOfType <MapDisplay>(); if (drawMode == DrawMode.NoiseMap) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(Noise.noiseMap)); } else if (drawMode == DrawMode.ColorMap) { display.DrawTexture(TextureGenerator.TextureFromColorMap(colorMap, mapChunkSize, mapChunkSize)); } else if (drawMode == DrawMode.Mesh) { Texture2D tex = TextureGenerator.TextureFromColorMap(colorMap, mapChunkSize, mapChunkSize); display.DrawMesh(MeshGenerator.GenerateTerrainMesh(Noise.noiseMap, meshHeightMultiplier, meshHeightCurve, levelOfDetail), tex); // save the texture GetTerrainTexture.SetTexture2D(tex); } else if (drawMode == DrawMode.FalloffMap) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(FalloffGenerator.GenerateFalloffMap(mapChunkSize))); } }
// Start is called upon initialisation void Start() { thisImage.texture = GetTerrainTexture.GetTexture2D(); MapData.terrainScale = GameObject.Find("Terrain").transform.localScale.x; }