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; } }