using Unity.Collections; using UnityEngine; using UnityEngine.Rendering; namespace Artngame.SKYMASTER.PlanetCreator { public class PlanetChunkObject : MonoBehaviour { public PlanetChunkProperties Properties; public MeshFilter Filter; public MeshCollider Collider; public Renderer Renderer; public bool IsVisible { get; private set; } public bool IsCalculating { get; private set; } private void OnDrawGizmos() { } public void SetVisible(bool visible) { IsVisible = visible; if (!visible) { Renderer.enabled = false; } else if (!IsCalculating) { Renderer.enabled = true; } } public void MarkCalculatingVertexData() { IsCalculating = true; } public void ApplyVertexData(AsyncGPUReadbackRequest request) { if (IsVisible) { NativeArray data = request.GetData(); Filter.sharedMesh.vertices = data.ToArray(); Filter.sharedMesh.RecalculateBounds(); Renderer.enabled = true; IsCalculating = false; } } public void ApplyNormalData(AsyncGPUReadbackRequest request) { if (IsVisible) { NativeArray data = request.GetData(); Filter.sharedMesh.normals = data.ToArray(); } } } }