报错:NullReferenceException: Object reference not set to an instance of an object

本文解决了Unity开发中常见的NullReferenceException错误,详细分析了在A类调用B类时,由于变量未实例化导致的问题,并提供了解决方案,即将B类变量的实例化从Start()方法移至Awake()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决方法:来自 阶梯之上 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/u011185231/article/details/49523293

报错:NullReferenceException: Object reference not set to an instance of an object
ObjectPooler.GetPooledObject (System.String tag) (at Assets/ObjectPooler.cs:55)
NoteSpawner.Start () (at Assets/NoteSpawner.cs:15)


我的情况:2个类的变量都在start()方法中实例化,其中一个类去调用另一个类。
问题所在:在A类调用B类时,B类的变量可能还没有实例化。
解决方法:把B类(最先实例化)的变量放在Awake()方法实例化。

Unity脚本的生命周期

Awake():此函数始终在任何Start函数之前调用,也在预制件之后调用中的实例化。(如果GameObject在启动期间处于非活动状态,则在激活之前不会调用Awake,一直会到gameobject处于active状态的时候会被调用)
Start():仅在启用脚本实例时,才会在第一帧更新之前调用Start。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值