public ChunkGenerator(ProceduralTerrainSettings _typeSettings)
    {
        var settings = _typeSettings.Get();

        meshGenerator  = MeshGeneratorFactory.Create(_typeSettings);
        noiseGenerator = new NoiseGenerator(settings);
        chunksPerFrame = settings.chunksPerFrame;

        priorityChunkQueue = new Queue <TerrainChunk>();
        chunkQueue         = new Queue <TerrainChunk>();
        outdatedChunks     = new Queue <TerrainChunk>();
    }
Beispiel #2
0
    public static IMeshGenerator Create(ProceduralTerrainSettings _typeSettings)
    {
        TerrainSettings settings = _typeSettings.Get();

        switch (_typeSettings.renderType)
        {
        case RenderType.Basic:
            return(new BasicMeshGenerator(settings));

        case RenderType.ComputeShader:
            return(new ComputeShaderMeshGenerator((ComputeShaderTerrainSettings)settings));

        case RenderType.JobSystemPartial:
            return(new JobSystemPartialMeshGenerator(settings));

        case RenderType.JobSystemFull:
            return(new JobSystemFullMeshGenerator(settings));
        }

        throw new System.Exception("Unable to create MeshGenerator for RenderType: " + _typeSettings.renderType.ToString());
    }