1

我得到了这个类,它有一个 2dArray,当我试图填充它时,我得到错误 NullReferenceException:对象引用未设置为对象的实例 AdminGrid.FullNot(Int32 Row, Int32 Column, Int32 Full, System.String PieceName)

public class AdminGrid : MonoBehaviour {

    public int numRows;
    public int numColumns;
    private int[,] ArrayGrid;
    // Use this for initialization
    void Init() {
                numColumns = 6;
                numRows = 6;
        ArrayGrid = new int[numRows,numColumns];

        for(int y = 0;y < numRows;y++)
        {
            for(int x = 0;x < numColumns;x++)
            {
                ArrayGrid[y,x] = 0; 
            }
        }
    }

    public void FullNot(int Row,int Column,int Full,string PieceName)
    {   
        ArrayGrid[Row,Column] = 1;//Error is here
    }

    public int WhatsonGrid(int Row,int Col)
    {
        return ArrayGrid[Row,Col];
    }
}

知道为什么会这样吗?如您所见,我的数组充满了 0,我认为这可以解决此问题,但似乎不是,我还确保值在数组内,这意味着列和行的最大值为 5,5

我用的是Unity引擎所以Init //其实叫start

当游戏开始时它会被调用,这就是为什么我很确定它被调用的原因

4

2 回答 2

1

ArrayGrid是一个引用类型的字段,所以默认为null,所以我简单的总结一下:你没有调用Init. 所以:打电话Init

于 2012-05-19T18:50:59.800 回答
1

用 AdminGrid 重命名初始化,一切都会好起来的)


public AdminGrid()
{
...
}
于 2012-05-19T19:07:44.940 回答