UH4——ILRuntime热更新解决方案
UH4——ILRuntime热更新解决方案
前置知识:C#反射,Unity跨平台原理,热更新相关知识点,AB包上传下载
ILRuntime
ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,
ILRuntime使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新
ILRuntime首页:介绍 — ILRuntime (ourpalm.github.io)
ILRuntimeGithub:Ourpalm/ILRuntime (github.com)
本系列学习内容
-
环境搭建和开发方式
-
Unity调用ILRuntime
-
Unity中启动ILRuntime
-
实例化ILRuntime中对象
-
调用ILRuntime中类对象属性
-
调用ILRuntime中方法
- 静态方法调用
- 成员方法调用
- 重载方法调用
- ref / out 方法调用
-
-
ILRuntime调用Unity
-
更多跨域调用
-
委托调用
-
跨域继承Unity中的类
- 跨域继承Unity中的类的注意事项
-
CLR重定向和CLR绑定
-
值类型绑定
-
MonoBehaviour
-
协同程序和异步函数
-
Unity反射调用ILRuntime
-
序列化库
-
-
调试相关
-
性能相关
- 寄存器模式
- 性能优化相关
-
原理相关
- 基本原理
- 类型系统
- 解释器
- 重定向的书写规则
强调ILRuntime和Lua热更的原理
ILRuntime和Lua热更解决方案,都是利用解释器(类似虚拟机的存在)
将DLL文件中的IL中间代码(或Lua脚本)基于自己实现的类型系统进行翻译执行
他们的原理有点类似 数据持久化中的反序列化,将2进制数据反序列化为我们想要的数据结构后进行逻辑处理
我们应该达到的水平
能正常使用ILRuntime结合Unity进行项目开发,需要熟练掌握:
- 环境搭建
- Unity和ILRuntime之间的跨域调用相关
- 能够调试ILRuntime项目
- 对ILRuntime的基本原理有基本的认识
实践思考
为了方便日常开发,我们应该在项目中分为开发模式和发布模式两种
开发模式:一键打包或不用打包,提升开发效率
发布模式:始终需要打包,模拟热更流程
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!