代码如下:
//这是我定义的一个坐标结构类
Coordinate.cs
using UnityEngine;
using System.Collections;
public class Coordinate {
private float chess_x;
private float chess_y;
public float x {
get{
return chess_x;
}
set{
chess_x = value;
}
}
public float y {
get{
return chess_y;
}
set{
chess_y = value;
}
}
}
//才下面的文件中new一个Coordinate 的二维数组类型,然后给其中属性赋值
ChessBoard.cs
using UnityEngine;
using System.Collections;
public class ChessBoard : MonoBehaviour {
Coordinate[,] chessBoardPos;
void Start () {
//初始化一个空的二维数组
chessBoardPos = new Coordinate[8, 8];
//这里是举个例子。我尝试了各种办法去给这个自定义的类的二维数组中的属性赋值。但是总是报错
chessBoardPos[1,1].x= 1.111f;
}
}
unity中给自定义类中的属性赋值,报错“Object reference not set to an instance of an object”
答案:2 悬赏:0
解决时间 2021-02-03 17:24
- 提问者网友:霸道又专情♚
- 2021-02-03 01:34
最佳答案
- 二级知识专家网友:气场征服一切
- 2021-02-03 03:03
改成这样
using UnityEngine;
using System.Collections;
public class ChessBoard : MonoBehaviour {
Coordinate[,] chessBoardPos;
void Start () {
chessBoardPos = new Coordinate[8,8];
chessBoardPos [1, 1] = new Coordinate ();
chessBoardPos[1,1].x= 1.111f;
}
}
你这样相当于
chessboardpos[1,1] = null;
chessboardpos[1,1].x = 1.111f
是空的咋赋值都会告诉你
Object reference not set to an instance of an object
using UnityEngine;
using System.Collections;
public class ChessBoard : MonoBehaviour {
Coordinate[,] chessBoardPos;
void Start () {
chessBoardPos = new Coordinate[8,8];
chessBoardPos [1, 1] = new Coordinate ();
chessBoardPos[1,1].x= 1.111f;
}
}
你这样相当于
chessboardpos[1,1] = null;
chessboardpos[1,1].x = 1.111f
是空的咋赋值都会告诉你
Object reference not set to an instance of an object
全部回答
- 1楼网友:你好陌生人
- 2021-02-03 03:42
clone是不是被自己的脚本回收了?
你的clone的内存已经被释放了, 查一下prefab(子弹吗?)的脚本。 很有可能timer没有同不好或者逻辑上的错误, 被delete了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯