Unity热更新对比 Lua,ILRuntime,HybridCLR(huatuo)

1.lua大家都很熟悉了,解决方案:内置一个Lua虚拟机,典型的框架有xlua,ulua,tolua

2.ILRuntime解决方案:内置一个.net字节码解释器,解释执行.net字节码。ILRuntime借助Mono.Cecil库来读取DLL的PE信息,以及当中类型的所有信息,最终得到方法的IL汇编码,然后通过内置的IL解译执行虚拟机来执行DLL中的代码来实现热更新功能。

使用限制:

1.不能手动挂载热更Mono脚本,只能通过代码AddComponent
2.不能使用非System.Action/Fun类型的委托,需要手动注册委托类型转换
3.需要将类的成员初始化赋值删除,改为在方法内初始化
4.不允许使用ref和out
5.将热更脚本放在特定文件夹。通过定义宏,在日常开发中在Assembly-CSharp编译调用,打包时将热更脚本单独打DLL。

3.HybridCLR原名huatuo,解决方案:在unity的il2cpp里面添加一个可以装在.net字节码,解释执行.net的字节码的功能。HybridCLR扩充了il2cpp的代码,使它由纯AOT runtime变成AOT+Interpreter 混合runtime,进而原生支持动态加载assembly,使得基于il2cpp backend打包的游戏不仅能在Android平台,也能在IOS、Consoles等限制了JIT的平台上高效地以AOT+interpreter混合模式执行,从底层彻底支持了热更新。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值