由2D数组组成的2D数组

时间:2019-08-03 09:25:54

标签: c# arrays unity3d

我知道有人问过类似的问题,但是,我正在使用C#和Unity创建游戏,并且试图创建块系统,已经创建了数组

bool[,] chunkData = new bool[chunkWidth, chunkHeight];

现在此数组代表32x32瓦片的区域-一个块,现在我想拥有另一个2D数组,它将存储所有块 之所以发布这个问题,是因为我想问一下您是否可以想到一个更好的主意,因为我以前从未做过这样的事情。

1 个答案:

答案 0 :(得分:2)

一种简单的方法是将chunkData包装到一个类中,然后可以使用任何容器存储它们的大量集合。例如

public class Chunk
{
    private bool[,] data;
    public Chunk(int width, int height)
    {
        data = new bool[width, height];
    }

    public bool GetChunkDataAt(int x, int y)
    {
        return data[x, y];
    }

    public void SetChunkDataAt(int x, int y, bool value)
    {
        data[x, y] = value;
    }
}

一些错误处理被省略;封装使得无法从外部重新分配块数据数组,但是如果是这样,则保持公开状态并不坏。

然后您可以执行以下操作:

Chunk[] chunkArray;
List<Chunk> chunkList;
// ...