1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【Unity】出现NullReferenceException:Object reference not set to an instance of an object.的原因总结

【Unity】出现NullReferenceException:Object reference not set to an instance of an object.的原因总结

时间:2020-11-15 01:31:52

相关推荐

【Unity】出现NullReferenceException:Object reference not set to an instance of an object.的原因总结

目录

1. 物体没有激活2. 物体的父物体、祖父物体……没有激活3. 没有挂载脚本4. 追祖溯源5. 资源加载失败6. 变量未赋初值

1. 物体没有激活

①运行前物体没有被激活,导致运行时找不到该物体;

②运行时物体被脚本控制取消了激活,导致用到该物体时找不到。

2. 物体的父物体、祖父物体……没有激活

Unity中,如果一个物体的父物体没有激活,那么其所有子物体是找不到的。

类似的,这种情况也会导致运行时找不到物体。

尤其是使用GameObject.Find()函数全局查找GameObject的时候需要尤其注意。

3. 没有挂载脚本

继承于MonoBehaviour的脚本没有挂载到Hierarchy面板上的任何GameObject。

这种情况下脚本中的Awake(),Start()和Update()脚本就都不会被执行,因此自然找不到需要的物体。

4. 追祖溯源

对于没有继承于MonoBehaviour的脚本,需要查看调用该脚本的源头脚本有没有运行(即其被挂载到了Hierarchy面板上的某个物体,且其脚本组件被激活)

5. 资源加载失败

脚本中使用到了Resources.Load()函数,然而其所指向的路径中没有对应的东西。

查看Assets文件夹下的Resources文件夹下是都有对应加载的资源。

6. 变量未赋初值

只定义了变量,但没有为其赋初值。

public Vector3 vec = new Vector3(0,0,0);public string[] strs = new string[5];int index = 0;float ff = 0.0f;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。