ET 框架学习(三)— 斗地主源码阅读
Hotfix是如何被驱动的
在LoadHotfixAssembly() 中,首先从本地加载dll文件,然后对IStaticMethod start对象进行赋值,赋值的内容为Hotfix中Init类及Start函数

那么我们进MonoStaticMethod类中看看究竟发生了什么
构造函数中保存了Init类中Start函数的MethodInfo
创建了一个和函数参数长度一样的object[] param 来进行参数传递
在下面还有很多Run方法,接下来我们找一下这里的Run到底是在哪里执行的

在Hotfix中很容易就发现了这个函数
这里的Run 和Start函数最开始很容易搞混,读了一段时间源码才搞明白为什么这么命名

Mono 订阅 Hotfix 中的事件
首先,我们在Unity项目中的Hotfix类中,可以看到猫大定义的三个Action,这3个Action在Init类中由对应的Update、LateUpdate、OnApplicationQuit来驱动

我们可以看到,在每一个函数中都会有Hotfix.xxx.Invoke(),这里实现Unity层和Hotfix层的事件Invoke

下面转移到Hotfix层的Init类中,我们可以看到,在Start函数最开始的时候就对这3个事件进行了注册
如果System需要使用上诉调用,继承对应名字的抽象类即可

Hotfix 订阅 Mono 中的事件
这个就非常简单啦~ 猫大已经给我们写好了例子,我们对着例子做一个就好了
只看事件名就知道这个事件是干嘛的了

Hotfix 中的事件回调
这里需要注意的是,EventIdType类是ETModel下的

看到这里我还是不明白为什么Hotfix 就把Mono中的事件给订阅了,直到我在翻看EventSystem中的构造函数时,发现了两行关键代码
如果不是猫大的注释,这里还是需要花一些时间阅读才能找到是怎样完成订阅的

UI逻辑入口
之前在看初见大佬录的视频中,提到了UI逻辑的入口,更改对应的UI 引用即可,但是却没有说入口的位置
这里可以看到上面注释的代码是ET Demo中UI的入口

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)