Unity3D 热更新 1-基础篇(公众号笔记)

ABSTRACT

2018-01 公众号笔记,整理自 Unity 官方 AssetBundle 教程。讲清 AssetBundle 是什么(不能包含脚本的资源打包文件)、六条基本规则、资源依赖链与 Manifest 清单、AssetBundle Variants 变体机制,以及官方 AssetBundle Manager 的模拟模式与本地资源服务器工作流。

核心要点

  • AssetBundle:编辑器期创建、运行期使用的资源打包文件,可含模型/材质/贴图/场景/二进制,但不能包含脚本——这是热更方案必须另配 Lua 等脚本方案的根本原因。
  • 典型用途:DLC、缩小首包体、按需加载、国际化资源、发版后资源修复更新。
  • 六条基本规则:AB 需整体下载缓存;不必整体加载;包内资源有依赖关系;可跨包共享依赖;每个 AB 有技术与管理开销;必须按目标平台分别打包。
  • 依赖陷阱:两个模型共享同一材质时,若材质未显式指定 AB,会被重复打进两个包,依赖关系断裂且丧失合批优势——共享资源必须显式归包。
  • Manifest 清单:构建时生成,记录平台下所有 AB 及其依赖项,是运行时查询依赖的「目录」。
  • AssetBundle Variants:同一资源的不同版本(SD/HD 分辨率、多语言)通过同名不同变体后缀组织,运行时按需映射,任一时刻只加载一个变体。
  • AB 粒度权衡:切太碎管理开销大,合太大包含无用资源,需按项目实际平衡。
  • AssetBundle Manager 三大核心功能:Simulation Mode(编辑器内免构建模拟 AB)、本地资源服务器(局域网内真机/编辑器测试)、Build 快捷菜单。
  • 模拟模式不支持 Variants,测变体必须构建并开启本地资源服务器。
  • 加载接口统一是热更工程化的前提:资源更新最频繁的部分必须走统一加载入口。

关键实体与概念

AssetBundle、Manifest、AssetBundle Variants、AssetBundle Manager、Simulation Mode、本地资源服务器、资源依赖链、DLC、StreamingAssets

关联概念

来源回溯

  • 原始文件:raw/ip/wechat_articles/Unity3D热更新1-基础篇.md(2018-01-13)

时效性评估

  • 仍有效:AB 不可含脚本、依赖管理、粒度权衡等原理是理解一切 Unity 资源热更方案的地基。
  • 已过时:AssetBundle Manager 官方示例包早已停止维护;现代方案是 Addressables(官方,自动处理依赖与增量构建)+ 商用框架(YooAsset 等)。文中的手动指定 AB 名、Simulation Mode 等操作流已不推荐使用。「AB 不能热更脚本」的限制催生了 xlua/HybridCLR 等现代代码热更方案,详见 Unity 热更新方案演进