UH4——ILRuntime热更新解决方案
UH4——ILRuntime热更新解决方案
前置知识:C#反射,Unity跨平台原理,热更新相关知识点,AB包上传下载
ILRuntime
ILRuntime 项目为基于 C# 的平台(例如Unity)提供了一个纯 C# 实现,快速、方便且可靠的 IL 运行时,
ILRuntime 使得能够在不支持 JIT 的硬件环境(如 IOS)能够实现代码的热更新
ILRuntime 首页:介绍 — ILRuntime (ourpalm.github.io)
ILRuntime Github: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齐的博客!
