Files
UnityAI/modules/frameworks/Hotfix启动.md
lms d31b49221e [docs][fix]: 补齐单文件模块状态字段与 MCP 维护 checklist
- 场景系统/数据配置框架/网络系统/Hotfix启动增加验证与当前状态
- 数据配置变更清单补充具体菜单/路径/命令
- 模块登记规则增加 README/使用指南/注意事项量化标准
- 模块文档模板明确 README 与使用指南分工
- MCP 使用规则维护要求改为 checklist

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:40:38 +08:00

2.6 KiB
Raw Permalink Blame History

Hotfix 启动

目的

记录非热更层更新启动代码、加载 AOT/HotUpdate 程序集并进入 HFGameStart 的稳定顺序。

主要路径

  • 非热更入口:Assets/Game/GameMono/Scripts/GameDllManager.cs
  • V2 公共下载层:Assets/StrayFog/Core/SFSubPackageV2.cs
  • 热更入口:Assets/Game/GameHFScripte/GameFunction/GameRoot/HFGameStart.cs
  • 普通资源检查:Assets/Game/GameHFScripte/GameFunction/HFDownLoadSubPackage/

启动顺序

GameDllManager.GameStart
  -> SetDownloadConfig
  -> 获取远端 V2 subpackage.json
  -> CheckAndDownloadBootstrapFiles
  -> PersistentData / StreamingAssets / CDN 逐文件 MD5 校验
  -> 按 LoadOrder 加载 AOT
  -> 按 LoadOrder 加载 HotUpdate
  -> 调用热更入口 HFGameStart.Init
  -> CommitBootstrapCodeLoaded
  -> CheckAndDownloadAllFiles 更新普通资源
  -> 加载配置、场景和业务管理器

Bootstrap 阶段是普通资源的硬门禁。远端清单、代码下载、MD5、AOT、HotUpdate 或热更入口失败时,不提交新清单,也不进入普通资源比对。

失败处理

  • 清单获取失败通过独立回调返回并阻断启动。
  • 文件失败结果包含 Path、期望 MD5、错误和尝试 URL。
  • 下载写临时文件MD5 成功后才替换 PersistentData 正式文件。
  • AOT 始终先于 HotUpdate不同版本代码不能混合加载。
  • 失败后可以重新执行整个 Bootstrap 阶段,已校验成功文件不会重复下载。

热更入口

HFGameStart 负责设置 GameSetting、检查普通资源、加载配置和场景、初始化业务管理器。业务访问框架能力统一通过 HFFunCatalogue

启动顺序变化必须同时检查非热更层、V2 门禁、普通资源和 UI 首屏,不能只修改热更入口一侧。

验证

  • 构建 GameMonoSFMono.csproj)与非热更入口相关程序集。
  • 构建 GameHF.csproj
  • 在目标平台或 Editor 中验证 Bootstrap 阶段清单获取、MD5 校验、AOT/HotUpdate 加载顺序。
  • 模拟 Bootstrap 失败(如断网、错误 MD5确认重试与回调行为。
  • 验证普通资源更新后 HFGameStart 正常进入配置/场景加载。

当前状态

  • 待验证

文档关联

文档 关联原因
模块索引 模块入口和状态
资源管理 V2 清单、Bootstrap 和普通资源
UI 窗口系统 启动后窗口加载
场景系统 启动后的场景流程
架构说明 非热更层与热更层边界