Object reference not set to an instance of an object 出现了这个问题不知道怎么解决

Zenzenzense 2018-05-06 12:49:34
Object reference not set to an instance of an object Unity3D上编译器出了这个问题好像是声明了变量,但是没有赋值。但是他报错的那一行是col.GetComponent<PlayerHp> ().AddHP (-5);


这一行我是写在void OnTriggerEnter(Collider col)里面的具体代码是
void OnTriggerEnter(Collider col){
Destroy (this.gameObject);
col.GetComponent<PlayerHp> ().AddHP (-5);//AddHp函数在PlayerHp中
}

有朋友们知道是怎么回事吗多谢多谢!
...全文
2694 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35831030 2018-05-09
  • 打赏
  • 举报
回复
Destroy (this.gameObject); col.GetComponent<PlayerHp> ().AddHP (-5) 这两行代码换下位置就行 Destroy (this.gameObject);写在下面一行https://bbs.csdn.net/simple_captcha?code=69674745013d7d8683acf15ddfd369fdefe4aca7&time=1525850184
幽幽有悠悠呦 2018-05-08
  • 打赏
  • 举报
回复
col.GetComponent<PlayerHp> () 单独看这一部分。正常来说应该返回PlayerHp这个对象。但是没正常的返回。而是返回了null.,然后又接上AddHP (-5); 导致了此问题。因为null不存在这个方法 col 再看看这部分,如果你的游戏对象被销毁了。col也会变成了null,一样是空指针。 造成null的原因无非就那么几个。例如脚本组件被销毁了。对象被移除了等等。最好处理异常的就是这种空指针异常的了
AdvancePikachu 2018-05-07
  • 打赏
  • 举报
回复
打个断点查一下就知道了!
Zenzenzense 2018-05-06
  • 打赏
  • 举报
回复
我好像是自从前面加了个Tag引用了之后就开始报这个错了 之前没事的QAQ

2,589

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧