public void SpawnNeighbours(TerrainChunk terrainChunk)
        {
            var center = chunks[terrainChunk];

            new Loop2D(3).loopX((x, y) => {
                x        -= 1;
                y        -= 1;
                var pos   = new Vector2Int(center.x + x, center.y + y);
                var chunk = chunks[pos];
                if (chunk == null)
                {
                    generateChunk(pos, 0);
                }
            });
        }
示例#2
0
        public TerrainChunk SpawnChunk(Vector2Int position, Transform parent, int lod)
        {
            var heightMap = heightMaps.GetOrCompute(position,
                                                    _ => Perlin.GeneratePerlinArray(_settings.chunkSize,
                                                                                    _settings.chunkSize,
                                                                                    _settings.octaves,
                                                                                    _settings.scale,
                                                                                    _settings.persistence,
                                                                                    _settings.lacunarity,
                                                                                    _seed,
                                                                                    position.x * (_settings.chunkSize - 1),
                                                                                    position.y * (_settings.chunkSize - 1)));
            var terrainChunk = TerrainChunk.Create(position, _settings, parent, heightMap);

            terrainChunk.setLodMesh(lod);
            return(terrainChunk);
        }