示例#1
0
    // Start is called before the first frame update
    void Update()
    {
        if (update)
        {
            update = false;
            //Compacting variables
            chunksPerAxis   = new Vector3(chunksAxisX, chunksAxisY, chunksAxisZ);
            noiseScale      = new Vector3(noiseX, noiseZ);
            surfaceSettings = new float[] { repeat, surfaceHeight, surfaceRelief };
            caveSettings    = new int[] { caveItirations, caveBirth, caveDeath, initialCave, cavesSeed };

            data.GenerateData(chunkSize, chunksPerAxis, noiseScale, surfaceSettings, caveSettings);
            if (chunksPerAxis == lastChunksPerAxis)
            {
                UpdateVoxelChunks(data);
            }
            else
            {
                GenerateVoxelChunks(data);
            }
        }
    }
示例#2
0
    private void Start()
    {
        chunks            = new GameObject[chunksAxisX, chunksAxisY, chunksAxisZ];
        data              = new VoxelData();
        lastChunksPerAxis = Vector3.zero;
        data.perlinNoise  = perlinNoise;
        data.generator    = generatorShader;


        //Compacting variables
        chunksPerAxis   = new Vector3(chunksAxisX, chunksAxisY, chunksAxisZ);
        noiseScale      = new Vector3(noiseX, noiseZ);
        surfaceSettings = new float[] { repeat, surfaceHeight, surfaceRelief };
        caveSettings    = new int[] { caveItirations, caveBirth, caveDeath, initialCave, cavesSeed };

        stopwatch.Reset();
        stopwatch.Start();
        data.GenerateData(chunkSize, chunksPerAxis, noiseScale, surfaceSettings, caveSettings);
        stopwatch.Stop();
        UnityEngine.Debug.Log("Data generation took:" + stopwatch.Elapsed);

        GenerateVoxelChunks(data);
    }
 // Update is called once per frame
 void Start()
 {
     voxelData.GenerateData(blockDim);
     GenerateVoxelMesh(voxelData);
     UpdateMesh();
 }