UH——Unity热更新笔记

热更新

游戏或者软件更新时,无需重新下载客户端进行安装
而是在应用程序启动的情况下在内部进行的资源或者代码更新

笔记代号UH——即Unity HotUpdate的缩写

本笔记包括以下系列

  • 热更新基础 —— AssetBundle

  • 热更新方案 —— Lua相关

    • Lua方案基础 —— Lua
    • Lua热更新方案 —— xLua
    • Lua热更新方案 —— toLua
  • 热更新基础 —— AB包的上传与下载

  • 热更新方案 —— ILRuntime

常见的热更新解决方案

从早到晚包括以下的热更新方案

  • Lua —— xLua或toLua都是内置Lua虚拟机,解释执行Lua代码
  • ILRuntime—— 内置C#字节码解释器,解释执行C#代码
  • Puerts —— 内置JavaScript/TypeScript解释器,解释执行TypeScript代码
  • HybridCLR(Huatuo)—— 在IL2CPP中添加一个可装载C#字节码,解释执行C#字节码的功能(高性能)

热更新的好处

  • 迅速修复Bug

    避免重新下载安装包,游戏内部更新修复Bug

  • 提升玩家留存率

    避免玩家因为超大的安装包而流失

  • 迅速换“内核”

    下载后通过热更新换成另一个游戏(真有你的.jpg)

为何要学习那么多的热更新内容

理论上来说,我们是可以通过C#本身的机制来达到热更新目的的,但是由于IOS平台下限制了可执行权限的内存空间,
从而导致我们必须从JIT(即时编译)变为AOT(提前编译),也就导致C#失去了运行时解释的能力,从而无法完成热更新
为了能够在IOS平台下进行热更新,从而诞生出了很多热更新解决方案
而商业游戏开发中,为了更好的进行游戏推广和提升玩家体验,热更新又是必不可少的功能
所以我们必须具备开发热更新项目的能力,才能提升自己的就业竞争力