unity 使用hybridclr进行热更新怎么修复unity脚本错误解决加载热更dll后脚本丢失?

1.lua大家都很熟悉了,解决方案:内置一个Lua虚拟机,典型的框架有xlua,ulua,tolua2.ILRuntime解决方案:内置一个.net字节码解释器,解释执行.net字节码。ILRuntime借助Mono.Cecil库来读取DLL的PE信息,以及当中类型的所有信息,最终得到方法的IL汇编码,然后通过内置的IL解译执行虚拟机来执行DLL中的代码来实现热更新功能。使用限制:1.不能手动挂载热更Mono脚本,只能通过代码AddComponent2.不能使用非System.Action/Fun类型的委托,需要手动注册委托类型转换3.需要将类的成员初始化赋值删除,改为在方法内初始化4.不允许使用ref和out5.将热更脚本放在特定文件夹。通过定义宏,在日常开发中在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混合模式执行,从底层彻底支持了热更新。
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
}

我要回帖

更多关于 怎么修复unity脚本错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信