【解决】MissingReferenceException: The object of type ‘GameObject‘ has been destroyed...
开发平台:Unity
编程平台:Visual Studio 2020以上
使用语言:C#
问题描述
描述 | |
---|---|
英文 | MissingReferenceException: The object of type ‘GameObject’ has been destroyed。 |
中文 | 丢失的偏好异常:GameObject 类型的对象已经被销毁 |
备注:这是一个 Warning 类型的错误警告,对项目稳定性基于使用情况给予 可忽略/有影响 两种BUFF。
解决方案:示例
public void Awake() { EventDispacther.AddListener($"{MessageCommand.Hello}", OnResponsedMessage); }public void OnResponsedMessage(object[] obj) { Debug.Log("Hello World"); }
- 如上所示,使用事件分发器注册监听
MessageCommand.Hello
消息。其内部方式使用 委托订阅方式进行。 - 现在 包含改内容 的脚本所挂载的对象被制作成 Prefab 预制体。用于其他脚本的调用。
- 在其他脚本中,例如:
public class ItemCreator : MonoBehaviour
{public Transform Parent;public GameObject Prefab;public IEnumerator CreateAndDelete(){yield return new WaitForSeconds(2f);var thisPrefab = GameObject.Instante(Prefab, Parent);yield return new WaitForSeconds(2f);DestroyImmediate(thisPrefab);EventDispatcher.DispatchEvent($"{MessageCommand.Hello}");}
}
在 创建与销毁 过程中,我们为该对象的组件中执行了 EventDispatcher
的事件注册。特别的,在销毁过程中,并未对该对象因自身销毁问题而注销事件监听。导致 事件分发器 中任然保留这一部分事件被执行,但对象已经出现丢失(销毁)。
解决方法:检查生命周期
注意 Unity 生命周期,若销毁对象,则需移除其自身所有注册信息。例如,在组件销毁阶段注销事件监听。
public void OnDestroy()
{EventDispatcher.RemoveObserver($"{MessageCommand.Hello}");
}
【解决】MissingReferenceException: The object of type ‘GameObject‘ has been destroyed...相关推荐
- MissingReferenceException: The object of type 'GameObject' has been destroyed
开发过程中遇到的问题: MissingReferenceException: The object of type 'GameObject' has been destroyed but you ar ...
- python3运行报错:TypeError: Object of type ‘type‘ is not JSON serializable解决方法(详细)
python3运行报错:TypeError: Object of type 'type' is not JSON serializable解决方法(详细) 参考文章: (1)python3运行报错:T ...
- 成功解决TypeError: object of type ‘int‘ has no len()
成功解决TypeError: object of type 'int' has no len() 目录 解决问题 解决思路 解决方法 解决问题 TypeError: object of type 'i ...
- 成功解决TypeError: Object of type 'ndarray' is not JSON serializable
解决问题 TypeError: Object of type 'ndarray' is not JSON serializable 解决方法 def default(self, obj):if isi ...
- 成功解决Python中出现的TypeError: object of type 'zip' has no len()
成功解决Python中出现的TypeError: object of type 'zip' has no len() 不罗嗦,直接解决问题! 目录 解决问题 解决思路 解决方法 解决问题 TypeEr ...
- 【文件处理】——字典写入json文件或TXT文件,读取文件中的字典TypeError: Object of type ‘ndarray‘ is not JSON serializable错误解决方法
目录 一.将字典写入json文件 二.json文件中读取字典 三.将字典写入TXT文件中 四.从TXT中读取字典 五.解决字典含数组存入json文件失败的方法 1.存入前将数组变成列表 2.扩展类方法 ...
- flask查询User,返回对象列表,提示ypeError: Object of type ‘bytes‘ is not JSON serializable解决办法
先把对象转换字典: class User(db.Model):__tablename__ = 'user'id = db.Column(db.INTEGER,primary_key=True)logi ...
- 解决Could not find method ndkVersion() for arguments on object of type com.android.build.问题
问题起因 今天刚升级完Android Studio 4.0,偶然用到了 NDK 相关的项目,运行后出这个错,还以为我这台电脑没有装相应的 NDK 点击Update. 然后就遇到了这个问题:Could ...
- Pytorch 类型错误:Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor.
Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor Pytorcht调试过程中,将数据传入模 ...
最新文章
- Python新工具:用三行代码提取PDF表格数据
- LBS推荐系统的设计方法
- MPEG-LA发布VVC专利池
- 用c语言实现0到59的数码管,跪求单片机0~99数码管显示用C语言编写的程序
- 博主应邀参加YOCSEF虚拟化技术论坛
- maven 父maven_Maven的春天
- Java7并发编程指南——第四章:线程执行器
- dHedge DAO和一些顶级基金向基金管理者投资14.5万sUSD
- NIST 发布关于使用“行政令-关键软件”的安全措施指南
- 企业微信应用设置可信域名_企业微信更新版本 全平台内容可设置成英文
- 每日算法系列【LeetCode 495】提莫攻击
- linux磁盘空间用满的处理方法
- ASP.NET MVC 在项目中使用面包屑导航
- 什么是领域模型(domain model)?贫血模型(anaemic domain model) 和充血模型(rich domain model)有什么区别...
- surface人脸识别摄像头不支持的情况解决方案
- 用isprime判断是否为素数(函数法)
- 双线双IP和BGP双线有什么区别?
- 邓俊辉数据结构学习心得系列——如何正确衡量一个算法的好坏
- 准备女儿的学前班毕业典礼
- 2021-10-01