Unity 热更新 · 学习导航
本页是热更新知识库的总入口 。
后续补充笔记时:在对应分区新建
.md,再回本页把链接从「待写」改成正式引用即可。
一句话定位
热更新 = 玩家不必重新下商店整包,就能拿到新资源 / 新代码逻辑 。
底层通常是:版本对比 → 差分下载 → 校验 → 写入本地缓存 → 加载。
AB 包(AssetBundle) :Unity 把资源打成的可下载二进制包;可理解为「带依赖关系的资源 zip」。现代项目常被 Addressables 包一层。详见 <01-基础必备/02-资源包形态-AB与Addressables>。
怎么用这份导航
| 用法 | 说明 |
|---|---|
| 按层学 | 先基础 → 再进阶 → 最后高级,别跳着啃 |
| 挂笔记 | 每学透一块,在对应目录新建笔记,并链回本页 |
| 自测 | 每层末尾有「验收」:讲不清 = 还没过关 |
| 进度 | 可在下方勾选框标记;笔记正文用 tags / 双向链接维护 |
建议顺序: 资源热更先于代码热更;能画流程图先于抠 API。
总览流程(必背骨架)
启动 → 检查本地版本 → 请求远端版本/清单
→ 对比差异 → 下载变更包 → 校验 → 解压/写入缓存
→ 加载资源/代码 → 进游戏
↓ 失败
重试 / 降级 / 提示强更 / 使用旧可用版本
| 更新对象 | 常见形态 | 人话 |
|---|---|---|
| 资源 | 贴图、模型、音效、配置、Prefab... | 换内容、换皮肤 |
| 代码逻辑 | Lua / HybridCLR / 解释执行逻辑等 | 改玩法、修 Bug |
| 元数据 | 版本号、清单、校验、灰度开关 | 告诉客户端下什么、能不能下 |
目录结构
Unity/热更新/
├── 00-热更新学习导航.md ← 你在这里
├── 01-基础必备/ ← 概念、流程、术语、Addressables 入门
│ └── Images/{笔记文件名}/ ← 该笔记配图(约定)
├── 02-进阶开发/ ← 最小热更 Demo、打包策略、代码热更实操
└── 03-高级工程/ ← CI、灰度、监控、安全与回滚
配图约定: 01-基础必备/Images/{与 md 同名的笔记名}/xxx.png
例:Images/08-Addressables入门与界面/01-Addressables菜单.png
第一层 · 基础必备理论知识
目标: 听得懂方案评审里的词,能画出「从发包到进游戏」主流程。
进度
- 概念清单过一遍(基础层含 Addressables 入门)
- 自己画过冷启动 / 二次启动时序图(见 03,可再手画加深)
- 能向别人讲清 AB / 清单 / CDN 各干什么
- 亲手跑通资源热更最小 Demo(此步起算进阶实操)
已有笔记
- <01-基础必备/01-整包热更强更与CDN入门> ← 整包/热更/强更/CDN/版本号
- <01-基础必备/02-资源包形态-AB与Addressables> ← AB / Addressables / Resources
- <01-基础必备/03-清单依赖与热更主流程> ← 清单 / 依赖 / 主流程 / StreamingAssets
- <01-基础必备/04-哈希校验与MD-SHA> ← 哈希校验 / MD5 / SHA / 签名与服权威入门
- <01-基础必备/05-路径三剑客与平台打包> ← 路径落点 / jar / 多平台 / 打包分层
- <01-基础必备/06-Unity打包原理与签名合规> ← 打包原理 / IL2CPP / 签名 / 审核
- <01-基础必备/07-资源热更与代码热更> ← 资源 vs 代码 / 是否进 AB / 选型
- <01-基础必备/08-Addressables入门与界面> ← Groups/配置目录/踩坑(基础,含截图)
- <01-基础必备/09-Addressables基本API> ← Load/Release/Catalog API(基础,短篇)
知识点 → 笔记挂载
| 序号 | 主题 | 你要能回答 | 笔记(待写可点开建) |
|---|---|---|---|
| 1 | 整包 / 热更 / 强更 | 何时必须去商店? | <01-基础必备/01-整包热更强更与CDN入门> §1 |
| 2 | 版本号体系 | app / res / code 各管什么? | <01-基础必备/01-整包热更强更与CDN入门> §3(已写) |
| 3 | 资源包形态 | AB、Addressables、包内资源角色 | <01-基础必备/02-资源包形态-AB与Addressables>(已写) |
| 4 | 依赖与引用 | 为何 Prefab 依赖多个包? | <01-基础必备/03-清单依赖与热更主流程> §2(已写) |
| 5 | Manifest / Catalog | 清单存什么?怎么知道要下啥? | <01-基础必备/03-清单依赖与热更主流程> §3(已写) |
| 6 | CDN 与本地缓存 | 下到哪?如何判断已有/要更新? | CDN 见 01 §2;落点见 <01-基础必备/05-路径三剑客与平台打包> |
| 7 | Hash / 校验 | 防坏包、判断文件是否变化 | <01-基础必备/04-哈希校验与MD-SHA>(已写) |
| 8 | 代码热更 vs 资源热更 | 为何审核对逻辑热更更敏感? | <01-基础必备/07-资源热更与代码热更>(已写) |
| 9 | 平台差异 | iOS / Android / PC 硬限制 | 路径见 <01-基础必备/05-路径三剑客与平台打包>;打包签名见 <01-基础必备/06-Unity打包原理与签名合规> |
| 10 | 失败与回滚 | 断网、校验失败、版本回退 | 回退入门见 01 §3.6;详 <01-基础必备/失败重试与回滚> |
路径与目录直觉
| 概念 | 笔记 |
|---|---|
| StreamingAssets / PersistentDataPath / 临时下载目录 | <01-基础必备/05-路径三剑客与平台打包>(已写) |
| 热更主流程详解(时序图) | <01-基础必备/03-清单依赖与热更主流程> §4 |
| 多平台打包与热更分层 | <01-基础必备/05-路径三剑客与平台打包> §7 |
| 打包原理 / 签名 / 商店审核 | <01-基础必备/06-Unity打包原理与签名合规> |
本层验收
能讲清:热更不是魔法,就是版本对比 + 差分下载 + 本地加载;并解释 AB / 清单 / CDN。
第二层 · 进阶开发熟练知识
目标: 小 Demo 跑通「资源热更 +(可选)逻辑热更」,能排常见坑。
进度
- 静态资源远程加载 Demo(接 08 界面 + 09 API)
- 带依赖的 AB / Addressables 加载
- 清单差分:只下变更
- 断点续传 + 校验失败重下
- (可选)代码热更一条线跑通
2.1 资源侧
| 模块 | 学什么 | 笔记 |
|---|---|---|
| 打包策略 | 模块/场景/类型分包;粒度权衡 | <02-进阶开发/打包策略与粒度> |
| 依赖收集 | 共享依赖、Shader/字体单独包 | <02-进阶开发/依赖收集与共享包> |
| 压缩与加密 | LZ4/LZMA、体积 vs CPU | <02-进阶开发/压缩与加密> |
| Addressables / 自研加载器 | 地址、Label、Group、远程路径 | 界面 <01-基础必备/08-Addressables入门与界面>;API <01-基础必备/09-Addressables基本API>;Demo 待写 |
| 增量更新 | 全量对比、文件级增量 | <02-进阶开发/增量更新与差分下载> |
| 预下载 / 边玩边下 | 优先级、阻塞 vs 延迟 | <02-进阶开发/预下载与边玩边下> |
| 内存与卸载 | Load/Unload、引用计数 | <02-进阶开发/加载卸载与内存> |
2.2 代码侧(选一条主线深挖)
| 路线 | 常见方案 | 笔记 |
|---|---|---|
| 脚本语言 | Lua / xLua 等 | <02-进阶开发/Lua热更路线> |
| IL / C# 热更 | HybridCLR 等 | <02-进阶开发/HybridCLR热更路线> |
| 配置驱动 | 表驱动、技能编辑器 | <02-进阶开发/配置驱动少改代码> |
| 合规注意 | iOS JIT / 动态代码限制 | <02-进阶开发/代码热更合规注意> |
原则:先资源后代码;两条代码路线不要同时深挖。
2.3 版本与协议
| 主题 | 笔记 |
|---|---|
| version.json / catalog 字段设计 | <02-进阶开发/版本文件与协议设计> |
| 新旧客户端兼容与强制整包 | <02-进阶开发/兼容策略> |
| 多渠道 / 灰度放量 | <02-进阶开发/多渠道与灰度> |
| 下载埋点与失败率 | <02-进阶开发/热更日志与埋点> |
2.4 建议动手 Demo(顺序)
- <02-进阶开发/Demo-静态资源热更>
- <02-进阶开发/Demo-带依赖AB加载>
- <02-进阶开发/Demo-清单差分下载>
- <02-进阶开发/Demo-断点续传与校验>
- <02-进阶开发/Demo-代码热更可选>
本层验收
能独立搭最小热更闭环,并定位:下不到 / 下完闪退 / 资源错乱 / 依赖丢失。
第三层 · 高级提升工程开发知识
目标: 设计可维护、可灰度、可回滚的体系,而不只是「能下能跑」。
进度
- 能画完整热更架构图(构建 → CDN → 客户端)
- 写出发布 / 灰度 / 回滚 / 监控四件套
- 至少复盘过一次(真实或模拟)热更事故思路
3.1 架构与管线
| 主题 | 笔记 |
|---|---|
| CI 打 AB、生成清单、上传 CDN | <03-高级工程/构建流水线CI> |
| Dev / Staging / Prod 隔离 | <03-高级工程/多环境隔离> |
| 文件级 / 二进制差分 | <03-高级工程/差分算法选型> |
| 首包最小化与按需下载 | <03-高级工程/包体优化策略> |
| CDN 回滚与版本锁定 | <03-高级工程/回滚机制> |
3.2 稳定性与质量
| 主题 | 笔记 |
|---|---|
| 热更冒烟与兼容矩阵 | <03-高级工程/测试与兼容矩阵> |
| 弱网 / 杀进程 / 存储满 | <03-高级工程/异常场景清单> |
| 熔断与灰度失败回退 | <03-高级工程/灰度与熔断> |
3.3 安全与合规
| 主题 | 笔记 |
|---|---|
| 签名、防篡改、防盗链 | <03-高级工程/安全与防篡改> |
| 审核边界与敏感逻辑 | <03-高级工程/合规与审核边界> |
3.4 性能与成本
| 主题 | 笔记 |
|---|---|
| CDN 成本与命中率 | <03-高级工程/CDN成本与带宽> |
| 启动耗时与缓存信任 | <03-高级工程/启动性能> |
| 无用资源治理 | <03-高级工程/资源膨胀治理> |
3.5 协作与发布
| 主题 | 笔记 |
|---|---|
| 发布 Checklist | <03-高级工程/发布Checklist> |
| 命名/分组规范 | <03-高级工程/资源命名与分组规范> |
| 事故复盘模板 | <03-高级工程/热更事故复盘模板> |
本层验收
能画出项目热更架构图,并写出 发布 / 灰度 / 回滚 / 监控 流程。
推荐学习节奏(可压缩)
| 阶段 | 时长参考 | 焦点 | 对应目录 |
|---|---|---|---|
| Week 1--2 | 基础 | 概念 + 流程图 + AB/清单/CDN | 01-基础必备 |
| Week 3--5 | 进阶资源 | Addressables 或最小下载器 Demo | 02-进阶开发 |
| Week 6--7 | 进阶代码 | HybridCLR 或 Lua 一条线 | 02-进阶开发 |
| Week 8+ | 高级 | CI、灰度、监控、差分与回滚 | 03-高级工程 |
术语速查
| 术语 | 人话 | 详细笔记 |
|---|---|---|
| AssetBundle (AB) | Unity 可下载资源包 | <01-基础必备/02-资源包形态-AB与Addressables> |
| Addressables | 用地址管理加载的上层方案 | <01-基础必备/08-Addressables入门与界面> · <01-基础必备/09-Addressables基本API> |
| Catalog / Manifest | 资源目录:文件、哈希、依赖 | <01-基础必备/03-清单依赖与热更主流程> §3 |
| CDN | 就近分发下载 | <01-基础必备/01-整包热更强更与CDN入门>(CDN 节) |
| PersistentDataPath | 可写缓存目录 | <01-基础必备/05-路径三剑客与平台打包> |
| StreamingAssets | 包内只读底货 | <01-基础必备/05-路径三剑客与平台打包> |
| 哈希 / MD5 / SHA-256 | 文件指纹与校验 | <01-基础必备/04-哈希校验与MD-SHA> |
| 强更 | 必须升到某版本才能继续 | <01-基础必备/01-整包热更强更与CDN入门> |
| 热更 | 不换安装包,下补丁 | <01-基础必备/01-整包热更强更与CDN入门> |
| 整包 | 换整个安装包 | <01-基础必备/01-整包热更强更与CDN入门> |
| HybridCLR | C# 逻辑热更方案之一 | <02-进阶开发/HybridCLR热更路线> |
| IL2CPP | C# 转原生码的出包后端 | <01-基础必备/06-Unity打包原理与签名合规> §6 |
补充笔记登记区
上面表格没覆盖、临时想到的碎片,先记在这里,回头再归类。
| 日期 | 笔记 | 备注 |
|---|---|---|
| 2026-08-04 | <01-基础必备/01-整包热更强更与CDN入门> | 第一篇:整包/热更/强更 + CDN 入门 |
| 2026-08-05 | 同上 §3 | 追加版本号体系、code 可选拆分、回退 vs 热修 |
| 2026-08-06 | <01-基础必备/02-资源包形态-AB与Addressables> | AB/Addressables/Resources、依赖多包直觉 |
| 2026-08-06 | <01-基础必备/03-清单依赖与热更主流程> | 清单生成与位置、循环依赖、主流程、StreamingAssets |
| 2026-08-06 | <01-基础必备/04-哈希校验与MD-SHA> | 哈希含义、MD/SHA、碰撞、签名/服权威/反作弊入门 |
| 2026-08-08 | <01-基础必备/05-路径三剑客与平台打包> | 三剑客、jar、Web/小程序、打包分层 |
| 2026-08-09 | <01-基础必备/06-Unity打包原理与签名合规> | 打包原理、IL2CPP、签名合规、审核范围 |
| 2026-08-09 | 同上 §11--12 | WebGL/小程序分发;打包失败常见原因 |
| 2026-08-09 | <01-基础必备/07-资源热更与代码热更> | 资源 vs 代码、逻辑是否进 AB、选型顺序 |
| 2026-08-09 | <01-依赖注入DI入门> | 另立目录:DI ≠ AB 依赖(拓展) |
| 2026-08-09 | <01-基础必备/08-Addressables入门与界面> | 界面/配置目录/踩坑;配图 Images/{笔记名}/ |
| 2026-08-09 | <01-基础必备/09-Addressables基本API> | 从 08 拆出 API,控制单篇篇幅 |
| 2026-08-09 | 同上(重写) | 按 api-teaching-notes:分类+参数+情节示例 |
相关对话来源
- 初次梳理:热更新系统性学习计划(基础 / 进阶 / 高级三层清单)
- 本导航页:将清单落盘为可挂载笔记的 Obsidian 索引
下一步建议
- 基础:<01-基础必备/08-Addressables入门与界面> + <01-基础必备/09-Addressables基本API>(单篇控制约 10 分钟可读完)
- 进阶从「最小热更 Demo(Remote + Build + Catalog)」开始算
- 配图约定:
01-基础必备/Images/{笔记名}/
| 日期 | 变更 |
|---|---|
| 2026-08-04 | 初稿:整包/热更/强更 + CDN 入门 |
| 2026-08-05 | 追加 §3 版本号体系(拆分约定、app 改不了、code 可选、回退 vs 热修、Git 类比) |