Exemple #1
0
    //Gets the chunk script from the hitCollider form the brush
    private void GetChunks()
    {
        List <MarchingCubesChunk> outputChunks = new List <MarchingCubesChunk>();

        MarchingCubesTerrainScript.GetChunksInCubeForEach forEachChunk = new MarchingCubesTerrainScript.GetChunksInCubeForEach(ForEachChunk);
        terrainScript.GetChunksInCube(brushSize, autoFixSeams ? 1 : 0, hitPoint, forEachChunk);
    }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        if (canGenerateChunks && Time.frameCount % updateTime == 0)
        {
            chunkCoordinates = terrainScript.TransformCoordinatesWorldToChunk(transform.position + transform.forward * (distanceFromCamera + distanceFromCameraOffset));
            terrainScript.GenerateChunk(transform.position, true, false);//The chunk we are currently on has the highest priority
            if (oldChunkCoordinates != chunkCoordinates)
            {
                foreach (var chunkLoopVar in loadedChunks)
                {
                    terrainScript.SetChunkVisibility(chunkLoopVar.Value, false);
                }
                loadedChunks.Clear();

                terrainScript.GetChunksInCube(chunkDistance, chunkCoordinates.x, chunkCoordinates.y, chunkCoordinates.z, forEachChunk);
            }
            oldChunkCoordinates = chunkCoordinates;
        }
    }