3

高さマップを作成し、そこから地形ブロックに入力することで、ワールドチャンクを動的に生成するスクリプトを作成しようとしています。私の問題は、オブジェクトの2次元配列を作成することです。

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は処理されませんでした。オブジェクト参照は、オブジェクトのインスタンスに設定されていません。

4

1 に答える 1

5

ループの前にnewを追加する必要があります。

Block[,] blocks = new Block[size,size];

むしろ、生成関数内(他はすべて同じ):

blocks = new Block[size,size];

そうしないと、元の「ブロック」変数をシャドウイングすることになります。

于 2012-08-10T18:16:09.767 に答える