Unity热更方案

 参考链接:Unity中的热更新的基础知识,Xlua与ILRuntime基础知识_xlua ilruntime-CSDN博客

Unity热更技术对比(Lua、ILRuntime、HybridCLR) - 学习使我进步 - 博客园 (cnblogs.com)

热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁。

热更新分为资源热更新代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新,但通常所说的热更新一般是指代码热更新。

资源热更新:主要通过AssetBundle来实现,在Unity编辑器内为游戏中所用到的资源指定AB包的名称和后缀,然后进行打包并上传服务器,待游戏运行时动态加载服务器上的AB资源包。

代码热更新:主要包括Lua热更新、ILRuntime热更新和C#直接反射热更新等。由于ILRuntime热更新还不成熟可能存在一些坑,而C#直接反射热更新又不支持IOS平台,因此目前大多采用更成熟的、没有平台限制的Lua热更新方案。

                        

热更技术原理:app+脚本解释器+脚本代码,动态执行最新代码,实现热更。

解释器:
  • Lua技术 = Lua解释器+Lua脚本;
  • C# = C#解释器+c#脚本
Unity的热更方案:
  • Lua解决方案(如ToLua,xLua等):内置Lua虚拟机+UnityEngine与C#框架的接口导出+Lua代码。
  • C#解决方案(ILRuntime):内置.net字节码解释器(虚拟机)+解释执行.net字节码。

(btw,IL的全称是 Intermediate Language,中间语言)

HybridCLR(huatuo)方案:基于IL2CPP
  • 在Unity的il2cpp里面添加一个可以装载.net字节码,解释执行.net的字节码的功能。
  • IL2CPP runtime环境(IL2CPP VM)编写一个解释器,解释执行IL代码指令+使用的是AOT的数据内存对象
  • IL2CPP 数据内存+代码逻辑指令(二进制机器指令)
  • IL2CPP_huatuo 数据内存+代码逻辑指令(二进制机器指令)+ IL代码指令解释执行

对于IL2CPP的深入了解可以看一下下面这篇文章,写的比较清晰:

Unity将来时:IL2CPP是什么? - 天马yp - 博客园 (cnblogs.com)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值