示例#1
0
    public void ReuseChunk(Chunk _chunk, intVector3 _position)
    {
        // intVector3 voxel_world_position = new intVector3(_x, _y, _z);//the coordinates of chunk in the world

        if (_chunk == null)
        {
            CreateChunk(_position.x, _position.y, _position.z);
        }

        _chunk.transform.position   = _position;
        _chunk.voxel_world_position = _position;

        _chunk.gameObject.SetActive(true);

        _chunk.voxel_world         = this;
        _chunk.transform.parent    = transform;
        _chunk.name                = "World Chunk";
        _chunk.gameObject.isStatic = true;

        chunks.Add(_position, _chunk);//store chunk in dictionary by its position
        _chunk = terrain_generator.GenerateChunk(_chunk);

        _chunk.SetVoxelsUnEdited();
        VoxelWorldSaver.Load(_chunk);
    }
示例#2
0
    public void CreateChunk(int _x, int _y, int _z)
    {
        intVector3 voxel_world_position = new intVector3(_x, _y, _z);//the coordinates of chunk in the world

        if (chunks.ContainsKey(voxel_world_position))
        {
            return;
        }

        GameObject chunk_object = Instantiate(chunk_prefab, new Vector3(voxel_world_position.x,
                                                                        voxel_world_position.y, voxel_world_position.z), Quaternion.Euler(Vector3.zero));//create chunk

        //set chunk parameters
        Chunk chunk = chunk_object.GetComponent <Chunk>();

        chunk.voxel_world_position = voxel_world_position;
        chunk.voxel_world          = this;
        chunk.transform.parent     = transform;
        chunk.name = "World Chunk";
        chunk.gameObject.isStatic = true;

        chunks.Add(voxel_world_position, chunk);//store chunk in dictionary by its position
        chunk = terrain_generator.GenerateChunk(chunk);

        chunk.SetVoxelsUnEdited();
        VoxelWorldSaver.Load(chunk);
    }