public Chunk(Vector2Int index, GeneratorBehaviour generator) { _generator = generator; _bounds = new Bounds(new Vector3(index.x * _generator.GridSize.x, 0, index.y * _generator.GridSize.z) + _generator.GridSize / 2, _generator.GridSize); Target = new GameObject("Chunk " + index); _renderer = Target.AddComponent <MeshRenderer>(); _renderer.sharedMaterial = new Material(Shader.Find("Custom/SurfaceShader")); _filter = Target.AddComponent <MeshFilter>(); Target.transform.parent = _generator.transform; Target.transform.position = _bounds.min; Target.SetActive(false); _lodMeshes = new LODMesh[_generator.LodLevels.Length]; for (int i = 0; i < _generator.LodLevels.Length; i++) { _lodMeshes[i] = new LODMesh(_generator.LodLevels[i].Lod, UpdateTerrainChunk, _generator); } }
public LODMesh(int lod, Action updateCallback, GeneratorBehaviour generator) { _lod = lod; _updateCallback = updateCallback; _generator = generator; }