куски не добавляются в правильном положении при добавлении новых кусков - PullRequest
0 голосов
/ 19 сентября 2019

я пытаюсь сделать размер мира в моей игре динамичным, и куски не добавляются в правильном месте, когда я прохожу край

checkrenderdistance ():

        void CheckRenderDistance()
        {
            if (player.Position.X > CurrentWorldSize * Chunk.Size)
            {
                Vector3i chpos = ChunkInWorld((int)player.Position.X, (int)player.Position.Y, (int)player.Position.Z) * Chunk.Size;
                Vector3i pos = new Vector3i((int)player.Position.X * (CurrentWorldSize * Chunk.Size), 0, (int)player.Position.Y * (CurrentWorldSize * Chunk.Size));

                GenerateChunkRegion(pos * chpos);

                Debug.Log("f");
            }
        }

generatechunkregion ():

        public void GenerateChunkRegion(Vector3i pos = null)
    {
        if(pos == null)
        {
            pos = new Vector3i(0, 0, 0);
        }
        for(int x = 0;x<Chunk.Size * renderdistance; x++)
        {

            for(int y = 0 ;y < 256; y++)
            {
                for(int z = 0;z<Chunk.Size * renderdistance; z++)
                {
                    SetVoxel(x + pos.X, y + pos.Y, z + pos.Z, GetVoxelP(x + (pos.X * Chunk.Size),y + (pos.Y * Chunk.Size),z + (pos.Z * Chunk.Size)));
                }
            }
        }
        CurrentWorldSize += renderdistance;
        Debug.Log("Current World Size:" + CurrentWorldSize + " Current Voxel Count:" + (CurrentWorldSize * Chunk.ChunkVoxelCount));
    }

chunkinworld ():

        public static Vector3i ChunkInWorld(int x, int y, int z) => new Vector3i
    (
        x < 0 ? (x + 1) / Chunk.Size - 1 : x / Chunk.Size,
        y < 0 ? (y + 1) / Chunk.Size - 1 : y / Chunk.Size,
        z < 1 ? (z + 1) / Chunk.Size - 1 : z / Chunk.Size
    );
...