当前位置:网站首页>一个近乎完美的 Unity 全平台热更方案
一个近乎完美的 Unity 全平台热更方案
2022-07-30 09:13:00 【非著名程序员】
【公众号回复 “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】邀请你入群。
---特别推荐---
特别推荐:一个新的优质的专注分享各种浏览器插件、黑科技教程、各种你想不到的高效率软件及工具的公众号,「程序员掘金」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片,直接关注。
边栏推荐
猜你喜欢

详解JVM垃圾回收

Test automation selenium (a)

The FPGA based protocol 2: the I2C read and write E squared PROM

ospf2双点双向重发布(题2)

How to implement Golang DES encryption and decryption?

Jetpack Compose 从入门到入门(八)

Taosi TDengine 2.6+ optimization parameters

How to avoid CMDB becoming a data island?

20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输

转行软件测试,报培训班3个月出来就是高薪工作,靠谱吗?
随机推荐
How to use Jmeter to carry out high concurrency in scenarios such as panic buying and seckill?
qsort 函数的使用及其模拟实现
An article to understand service governance in distributed development
20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
PyQt5-在窗口上绘制文本
echart图表清空上一次数据
积分专题笔记-曲线面积分三大公式
Devops和低代码的故事:螳螂捕蝉,黄雀在后
初识Apifox——如何使用Apifox做一个简单的接口测试
leetcode 剑指 Offer 63. 股票的最大利润
leetcode 剑指 Offer 10- I. 斐波那契数列
Circuit analysis: constant current source circuit composed of op amp and triode
【无标题】
PyQt5快速开发与实战 7.4 事件处理机制入门 and 7.5 窗口数据传递
C#中Config文件中,密码的 特殊符号的书写方法。
2022 Hangzhou Electric Multi-School 1st Game
日志导致线程Block的这些坑,你不得不防
2022杭电多校第一场
HR团队如何提升效率?人力资源RPA给你答案
Unable to locate the program input point ucrtbase.abort on the dynamic link library api-ms-win-crt-runtime-|1-1-0.dll