我知道有人问过类似的问题,但是,我正在使用C#和Unity创建游戏,并且试图创建块系统,已经创建了数组
bool[,] chunkData = new bool[chunkWidth, chunkHeight];
现在此数组代表32x32瓦片的区域-一个块,现在我想拥有另一个2D数组,它将存储所有块 之所以发布这个问题,是因为我想问一下您是否可以想到一个更好的主意,因为我以前从未做过这样的事情。
答案 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;
// ...