Exemple #1
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;
        }
    }