MissingReferenceException: The object of type ‘Text’ has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
该情况发生于我的观察者模式在重新加载当前场景时 监听的物体被销毁
如上所示错误,通过分析,定位到错误是在观察者模式使用事件分发器注册监听 消息。其内部方式使用 委托订阅方式进行,在重加载场景时,unity调用Destory()生命周期函数 此时监听挂载没有被清楚。或者说该监听需要的gameobject 实例 被重新加载时销毁掉了
(观察者模式地址)

如下图所示 监听挂载后 在重新加载的过程中没有Remove掉;

需要在脚本销毁时OnDestroy()生命周期中,调用写好的RemoveEventListener函数(unity在重新加载当前场景时时,会调用该生命周期函数);
【解决】MissingReferenceException: The object of type ‘GameObject‘ has been destroyed 观察者模式 监听物体被销毁
最新推荐文章于 2026-04-13 11:03:06 发布
在Unity的观察者模式实现中,当重新加载场景时出现MissingReferenceException错误,原因是监听对象在销毁后仍尝试访问。解决方案是确保在OnDestroy()生命周期方法中调用RemoveEventListener,以移除已销毁GameObject的监听。这能防止在场景重载时因委托未解除订阅导致的问题。

1万+

被折叠的 条评论
为什么被折叠?



