// Start is called before the first frame update void Start() { terrainScript = GameObject.FindObjectOfType <MarchingCubesTerrainScript>(); loadedChunks = new Dictionary <int, MarchingCubesTerrainScript.ChunkData>(); distanceFromCamera = terrainScript.TransformCoordinatesChunkToWorld(chunkDistance, 0, 0).x; forEachChunk = new MarchingCubesTerrainScript.GetChunksInCubeForEach(ForEachChunk); }
public override void OnInspectorGUI() { DrawDefaultInspector(); MarchingCubesTerrainScript myScript = (MarchingCubesTerrainScript)target; if (GUILayout.Button("Generate chunks")) { myScript.GenerateChunks(false, true, true); } if (GUILayout.Button("Fix Chunk Seams")) { myScript.FixChunkSeams(); } GUILayout.BeginHorizontal(); if (GUILayout.Button("Save Chunks")) { myScript.SaveChunksData(); } if (GUILayout.Button("Load Chunks")) { myScript.LoadChunksData(); } GUILayout.EndHorizontal(); }
//Starts generating this chunk public void StartChunk(MarchingCubesTerrainScript terrain, int _x, int _y, int _z) { chunkRenderer = GetComponent <MeshRenderer>(); chunkRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.TwoSided; chunkRenderer.material = terrain.material; x = _x; y = _y; z = _z; }
private void OnDrawGizmos() { if (terrainScript == null) { terrainScript = GetComponent <MarchingCubesTerrainScript>(); } Gizmos.DrawWireSphere(hitPoint, brushSize); GetChunks(); }
private void OnDrawGizmos() { if (terrainScript == null) { terrainScript = GameObject.FindObjectOfType <MarchingCubesTerrainScript>(); } Gizmos.DrawWireSphere(terrainScript.TransformCoordinatesChunkToWorld(chunkCoordinates), 1); if (loadedChunks != null && loadedChunks.Count != 0) { foreach (var chunk in loadedChunks) { Gizmos.color = Color.green; if (chunk.Value.chunkScript == null) { continue; } Gizmos.DrawWireSphere(chunk.Value.chunkScript.transform.position, 1); } } }