C#hybridCLR热更新方案初探

发布时间:2024年01月24日

前言

暂时处于初步研究状态,目前的框架使用还是尚少,本篇文章旨在同步给大家大概的使用流程和使用心得,在初步建立新项目时可以适当考虑。

介绍

热更新

与强制更新相对应,移动平台上App的可执行程序没有发生变化,仅需要更新游戏资产就可以实现新版本的分发,这种更新称之为热更新。由于不需要经过App商店审核,这种更新内容可以非常快速地分发给玩家。玩家也不需要重新下载App全量包,仅需要下载变动的资产部分即可正常进行游戏,相对而言减小了玩家流失的风险。

为什么会诞生第三方热更新方案,而非系统原生支持

IOS上的反射是部分支持,支持使用反射读取源代码,但不支持使用反射动态生成可执行代码。总而言之,IOS不支持以动态方式创建新的方法和类型。资源热更新采用我们目前的assetbundle是没有任何问题的,如果我们把部分逻辑提取至一个单独的代码库工程中,打包为DLL,再用DLL打包成AB包,用户下载完这个AB包后动态加载DLL文件,按理说是可行的,但是ios不支持动态运行代码,所以是没办法的。

第三方热更新方案

目前市面上主流的,我了解到的热更新方案有lua、ILRunTime、HybridCLR。

从unity到底层二进制代码的流程主要是Unity->.net字节码->il2cpp->C++静态代码->二进制代码

lua分xlua和ulua。xlua是腾讯写的lua热更新框架,目前项目在使用,主要逻辑是自己会生成一个虚拟机管理lua数据,在初始阶段用dos

文章来源:https://blog.csdn.net/weixin_45218342/article/details/135818885
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。