示例#1
0
        public void UpdateChunk(float noiseScale, int chunkSize, int chunkHeight)
        {
            _isVoxelsReady = false;

            chunkData = new ChunkData(chunkSize, chunkHeight);
            _voxels   = new NativeList <VoxelData>(Allocator.TempJob);

            var job = new ChunkGenerateVoxelsJob()
            {
                voxelData   = _voxels,
                noiseScale  = noiseScale,
                chunkSize   = chunkSize,
                chunkHeight = chunkHeight,
                position    = transform.localPosition
            };

            _jobHandle = new JobHandleExtended(job.Schedule());
        }
示例#2
0
        public void GenerateMesh(ChunkData chunkData)
        {
            ResetRender();

            _triangles = new NativeList <int>(Allocator.TempJob);
            _vertices  = new NativeList <Vector3>(Allocator.TempJob);

            _voxels = new NativeList <VoxelData>(chunkData.Voxels.Count, Allocator.TempJob);
            _voxels.CopyFrom(chunkData.Voxels.ToArray());

            var job = new ChunkGenerateMeshJob()
            {
                triangles = _triangles,
                vertices  = _vertices,
                voxels    = _voxels
            };

            _jobHandle = new JobHandleExtended(job.Schedule());
        }