private void Update() { if (!terrain.IsInViewDistance(this)) { terrain.UnloadChunk(this); } if (data == null) { return; } int LODTarget = terrain.LODTarget(this); if (currentLOD != LODTarget && (currentLOD == -1 || Random.value > 0.75)) { currentLOD = LODTarget; MeshTextureRenderer renderer = GetComponent <MeshTextureRenderer>(); renderer.DrawMesh(data.LODMeshData[LODTarget], TextureGenerator.TextureFromColorMap(data.textureData, MapGenerator.chunkSize, MapGenerator.chunkSize)); } if (!hasCollider && terrain.NeedsCollider(this)) { MeshTextureRenderer renderer = GetComponent <MeshTextureRenderer>(); renderer.DrawCollider(data.LODMeshData[terrain.settings.ColliderLOD]); hasCollider = true; } }
public void EditorRender() { MapData data = GenerateMapData(Vector2.zero, editorNormalMode); MeshData falloff_mesh = MeshGenerator.GenerateTerrainMesh(fallOffMap, settings.lod, settings.heightFactor, AnimationCurve.Linear(0, 0, 1, 1)); MeshData plane = MeshGenerator.GeneratePlaneMesh(chunkSize, chunkSize); switch (editorMode) { case EditorMode.COLORED: editorRenderer.DrawMesh(data.LODMeshData[settings.lod], TextureGenerator.TextureFromColorMap(data.textureData, chunkSize, chunkSize)); editorRenderer.DrawCollider(data.LODMeshData[settings.lod]); break; case EditorMode.HEIGHTMAP: editorRenderer.DrawMesh(data.LODMeshData[settings.lod], TextureGenerator.TextureFromGrayscaleMap(data.map)); editorRenderer.DrawCollider(data.LODMeshData[settings.lod]); break; case EditorMode.FALLOFF: editorRenderer.DrawMesh(falloff_mesh, TextureGenerator.TextureFromGrayscaleMap(fallOffMap)); editorRenderer.DrawCollider(falloff_mesh); break; case EditorMode.FLAT_COLORED: editorRenderer.DrawMesh(plane, TextureGenerator.TextureFromColorMap(data.textureData, chunkSize, chunkSize)); editorRenderer.DrawCollider(plane); break; case EditorMode.FLAT_HEIGHTMAP: editorRenderer.DrawMesh(plane, TextureGenerator.TextureFromGrayscaleMap(data.map)); editorRenderer.DrawCollider(plane); break; case EditorMode.FLAT_FALLOFF: editorRenderer.DrawMesh(plane, TextureGenerator.TextureFromGrayscaleMap(fallOffMap)); editorRenderer.DrawCollider(plane); break; } }