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); } }); }
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); }