我正在尝试制作一个脚本,通过制作高度图然后从那里填充地形块来动态生成世界块。我的问题是创建一个二维对象数组。
public class Chunk
{
public Block[,] blocks;
Generate(){
//code that makes a height map as a 2 dimensional array as hightmap[x,y]=z
//convert heightmap to blocks
for (int hmX = 0; hmX < size; hmX++)
{
for (int hmY = 0; hmY < size; hmY++)
{
blocks[hmX, hmY] = new Block(hmX, hmY, heightmap.Heights[hmX, hmY], 1);
}
}
}
}
这给了我错误:
NullReferenceException 未处理,对象引用未设置为
对象的实例。
你只需要在循环之前添加 new :
Block[,] blocks = new Block[size,size];
或者更确切地说,在生成函数中(其他都相同):
blocks = new Block[size,size];
否则,您将隐藏原始的“块”变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)