Unity 单例与ScenceManager,LoadScenc遇到的一个大坑

先贴错误:MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it (ERROR)

GameManager为唯一单一模式(此处不讲单例的实现)

在贴部分代码(都在Start中):

 

1.DontDestroyOnLoad引起的错误

场景层次结构如下:

当我从A场景加载到含该单例的B场景,第一次正常运行,再一次返回到A,跳转到B,GameManager并没有在DontDestroyOnLoad列表显示,并且在使用时报以上错误。(坑了我很久)

解决方法:将单例作为单独一个物体。由于在切换场景 的时候将其父物体删除了。

2.

由于在单例内部注册的监听没有取消引起的:如上,我在语音识别有两个监听,使用时总是报MissingReferenceException(报错有时候或让你懵逼)

解决方法:在离开B场景时,将监听全部清空,进入B场景后重新添加引用即可

如果你还有别的问题,可以直接联系我。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值