一个近乎完美的 Unity 全平台热更方案
Posted 非著名程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个近乎完美的 Unity 全平台热更方案相关的知识,希望对你有一定的参考价值。
【公众号回复 “1024”,免费领取程序员赚钱实操经验】
大家好,我是章鱼猫。
今天推荐的这个项目是「HybridCLR」,是一个特性完整、零成本、高性能、低内存的近乎完美的 Unity 全平台原生 c# 热更方案。
HybridCLR 扩充了 il2cpp 的代码,使它由纯 AOT runtime 变成 AOT+Interpreter 混合 runtime,进而原生支持动态加载 assembly,使得基于 il2cpp backend 打包的游戏不仅能在 android 平台,也能在ios、Consoles 等限制了 JIT 的平台上高效地以 AOT+interpreter 混合模式执行,从底层彻底支持了热更新。
工作原理
HybridCLR 从 mono 的 hybrid mode execution 技术中得到启发,为 unity 的 il2cpp 之类的 AOT runtime 额外提供了 interpreter 模块,将它们由纯 AOT 运行时改造为 "AOT + Interpreter" 混合运行方式。
更具体地说,HybridCLR 做了以下几点工作:
实现了一个高效的元数据 (dll) 解析库
改造了元数据管理模块,实现了元数据的动态注册
实现了一个IL指令集到自定义的寄存器指令集的 compiler
实现了一个高效的寄存器解释器
额外提供大量的 instinct 函数,提升解释器性能
提供 hotfix AOT 的支持
开源项目地址:https://github.com/focus-creative-games/hybridclr
开源项目作者:focus-creative-games
推荐阅读
最近,章鱼猫建了一个「GitHub 精选交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,加我微信:loonggg1024,备注【GitHub】邀请你入群。
---特别推荐---
特别推荐:一个新的优质的专注分享各种浏览器插件、黑科技教程、各种你想不到的高效率软件及工具的公众号,「程序员掘金」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片,直接关注。
以上是关于一个近乎完美的 Unity 全平台热更方案的主要内容,如果未能解决你的问题,请参考以下文章