Game_Num_Basics_And_Calc

🔄 热更新与资源管理 (Hot Update & Resource Management)

技术栈: YooAsset (资源管理) + HybridCLR (代码热更)

本文档详述了 Project Vampirefall 的热更新管线。我们采用这一组合以实现 Android/iOS 平台的 全量热更能力,绕过应用商店审核进行快速迭代。

1. 📦 资源管理: YooAsset

我们选择 YooAsset 替代 Addressables,因为它提供了更符合国内开发习惯的分包策略、加密机制和版本管理。

1.1 资源包规划 (Package Design)

我们将资源分为以下几个 Package,以优化下载和内存:

1.2 构建管线 (Build Pipeline)

  1. 资源收集: 通过 AssetBundleCollector 自动扫描 Assets/ArtAssets/Res 下的目录。
  2. 加密: 对 DefaultPackage 中的敏感数据 (如配置表) 应用 Offset 偏移加密。
  3. 版本号: 采用 v1.0.build_timestamp 格式。

1.3 运行模式

2. 🔥 代码热更: HybridCLR (huatuo)

HybridCLR 使得 Unity 的 IL2CPP 后端也能加载动态 DLL,实现了 C# 的全热更。

2.1 架构划分

2.2 补充元数据 (Metadata)

为了让 AOT 代码能调用热更代码中的泛型函数,需要加载 AOT DLL 的元数据。

2.3 工作流 (Workflow)

  1. Compile: 菜单栏 HybridCLR/CompileDll (生成热更 DLL)。
  2. Copy: 自动脚本将生成的 DLL 复制到 YooAsset 的 RawFile 收集目录。
  3. Build: 运行 YooAsset 构建资源包。
  4. Upload: 将构建结果上传至 CDN。

3. 🚀 启动流程 (Boot Sequence)

graph TD
    A[启动游戏] --> B{检测运行模式}
    B -- Editor --> C[进入游戏]
    B -- HostPlay --> D[初始化 YooAsset]
    D --> E[获取远端版本信息]
    E --> F{有新版本?}
    F -- No --> G[加载 AOT 元数据]
    F -- Yes --> H[下载补丁清单]
    H --> I[下载 DLL & 核心资源]
    I --> G
    G --> J[反射调用热更入口]
    J --> K[进入游戏主逻辑]

4. ❓ 常见问题与对策