2026-07-07 18:36:15 +08:00
|
|
|
|
# Hotfix 启动
|
|
|
|
|
|
|
|
|
|
|
|
## 目的
|
|
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
记录非热更层更新启动代码、加载 AOT/HotUpdate 程序集并进入 `HFGameStart` 的稳定顺序。
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
## 主要路径
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
- 非热更入口:`Assets/Game/GameMono/Scripts/GameDllManager.cs`
|
|
|
|
|
|
- V2 公共下载层:`Assets/StrayFog/Core/SFSubPackageV2.cs`
|
|
|
|
|
|
- 热更入口:`Assets/Game/GameHFScripte/GameFunction/GameRoot/HFGameStart.cs`
|
|
|
|
|
|
- 普通资源检查:`Assets/Game/GameHFScripte/GameFunction/HFDownLoadSubPackage/`
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
## 启动顺序
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
2026-07-10 17:50:20 +08:00
|
|
|
|
GameDllManager.GameStart
|
|
|
|
|
|
-> SetDownloadConfig
|
|
|
|
|
|
-> 获取远端 V2 subpackage.json
|
|
|
|
|
|
-> CheckAndDownloadBootstrapFiles
|
|
|
|
|
|
-> PersistentData / StreamingAssets / CDN 逐文件 MD5 校验
|
|
|
|
|
|
-> 按 LoadOrder 加载 AOT
|
|
|
|
|
|
-> 按 LoadOrder 加载 HotUpdate
|
|
|
|
|
|
-> 调用热更入口 HFGameStart.Init
|
|
|
|
|
|
-> CommitBootstrapCodeLoaded
|
|
|
|
|
|
-> CheckAndDownloadAllFiles 更新普通资源
|
|
|
|
|
|
-> 加载配置、场景和业务管理器
|
2026-07-07 18:36:15 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
Bootstrap 阶段是普通资源的硬门禁。远端清单、代码下载、MD5、AOT、HotUpdate 或热更入口失败时,不提交新清单,也不进入普通资源比对。
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
## 失败处理
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
- 清单获取失败通过独立回调返回并阻断启动。
|
|
|
|
|
|
- 文件失败结果包含 Path、期望 MD5、错误和尝试 URL。
|
|
|
|
|
|
- 下载写临时文件,MD5 成功后才替换 PersistentData 正式文件。
|
|
|
|
|
|
- AOT 始终先于 HotUpdate;不同版本代码不能混合加载。
|
|
|
|
|
|
- 失败后可以重新执行整个 Bootstrap 阶段,已校验成功文件不会重复下载。
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
## 热更入口
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
`HFGameStart` 负责设置 GameSetting、检查普通资源、加载配置和场景、初始化业务管理器。业务访问框架能力统一通过 `HFFunCatalogue`。
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
启动顺序变化必须同时检查非热更层、V2 门禁、普通资源和 UI 首屏,不能只修改热更入口一侧。
|
2026-07-07 18:36:15 +08:00
|
|
|
|
|
|
|
|
|
|
## 文档关联
|
|
|
|
|
|
|
|
|
|
|
|
| 文档 | 关联原因 |
|
|
|
|
|
|
|---|---|
|
2026-07-10 17:50:20 +08:00
|
|
|
|
| [模块索引](../模块索引.md) | 模块入口和状态 |
|
|
|
|
|
|
| [资源管理](资源管理/README.md) | V2 清单、Bootstrap 和普通资源 |
|
|
|
|
|
|
| [UI 窗口系统](UI窗口系统/README.md) | 启动后窗口加载 |
|
|
|
|
|
|
| [场景系统](场景系统.md) | 启动后的场景流程 |
|
|
|
|
|
|
| [架构说明](../../rules/10-架构说明.md) | 非热更层与热更层边界 |
|