3D int数组导致对象引用错误

时间:2019-06-07 10:09:33

标签: c# unity3d

我已经为一个敌人写了一个脚本,该脚本沿着网格上的图块移动,网格是一个3D数组,其第一维是水平位置,第二垂直位置和空间的第3个属性。我没有引用任何对象,但是当我运行脚本时,它会导致“对象引用未设置为对象的实例”错误。

public bool my_turn;
public bool turn_setup;
public List<int> my_grid_pos;
public List<List<List<int>>> grid;
void Update () {
    if(my_turn)
    {
         if (turn_setup)
         {
             grid[my_grid_pos[1]][my_grid_pos[0]][2] = 1;
         }
    }
}

1 个答案:

答案 0 :(得分:1)

  

“我没有引用任何对象”

是的,你是。在此行上,您尝试引用4个对象:

grid[my_grid_pos[1]][my_grid_pos[0]][2]
  • my_grid_pos [1]
  • my_grid_pos [0]
  • 网格[x,y]
  • 网格[x,y] [2]

这些列表查询结果中的一个(或多个)结果由于某些原因导致空值,我们无法从您发布的代码中扣除该值。然后,您尝试访问其列表的对象之一:

null[x]

这会导致您收到错误消息。


Here's an answer explaining what NRE is