예제 #1
0
        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);
            }
        }
예제 #2
0
 public LODMesh(int lod, Action updateCallback, GeneratorBehaviour generator)
 {
     _lod            = lod;
     _updateCallback = updateCallback;
     _generator      = generator;
 }