Exemple #1
0
 // 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();
    }
Exemple #3
0
 //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;
 }
Exemple #4
0
 private void OnDrawGizmos()
 {
     if (terrainScript == null)
     {
         terrainScript = GetComponent <MarchingCubesTerrainScript>();
     }
     Gizmos.DrawWireSphere(hitPoint, brushSize);
     GetChunks();
 }
Exemple #5
0
 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);
         }
     }
 }