using UnityEngine; using System.Collections; public class MapDisplay : MonoBehaviour { public Renderer textureRender; public MeshFilter meshFilter; public MeshRenderer meshRenderer; public void DrawTexture(Texture2D texture) { textureRender.sharedMaterial.mainTexture = texture; textureRender.transform.localScale = new Vector3 (texture.width, 1, texture.height); } public void DrawMesh(MeshData meshData) { meshFilter.sharedMesh = meshData.CreateMesh (); meshFilter.transform.localScale = Vector3.one * FindFirstObjectByType ().terrainData.uniformScale; ApplyVertexColors(meshFilter.sharedMesh); } void ApplyVertexColors(Mesh mesh) { Vector3[] vertices = mesh.vertices; Color[] colors = new Color[vertices.Length]; float maxH = 25f; for (int i = 0; i < vertices.Length; i++) { float heightPercent = Mathf.InverseLerp(0, maxH, vertices[i].y); // --- THE BIOME LAYERS --- if (heightPercent < 0.05f) { colors[i] = new Color(0.1f, 0.3f, 0.6f); // Deep Water (Dark Blue) } else if (heightPercent < 0.12f) { colors[i] = new Color(0.9f, 0.8f, 0.6f); // Sand/Beach (Tan) } else if (heightPercent < 0.45f) { colors[i] = new Color(0.2f, 0.5f, 0.1f); // Grass (Rich Green) } else if (heightPercent < 0.65f) { colors[i] = new Color(0.4f, 0.35f, 0.3f); // Rock Color 1 (Brown-Grey) } else if (heightPercent < 0.85f) { colors[i] = new Color(0.3f, 0.3f, 0.3f); // Rock Color 2 (Dark Grey) } else { colors[i] = Color.white; // Snow (White) } } mesh.colors = colors; } }