1. Cocos Creator 3.8.7热更新实战指南
作为一名长期使用Cocos Creator进行游戏开发的工程师,我深知热更新功能对于移动端游戏的重要性。3.8.7版本虽然提供了热更新的API支持,但官方文档的分散性让很多开发者难以快速上手。本文将带你从零开始,完整实现一个可落地的热更新方案。
注意:本文基于Cocos Creator 3.8.7版本,不同版本可能存在差异。建议先创建一个测试项目跟随操作。
1.1 核心原理解析
Cocos Creator的热更新系统本质上是一个差异化的资源管理系统。其核心工作原理可以概括为:
- 版本比对:通过比较本地version.manifest和远程version.manifest的版本号,确定是否需要更新
- 资源下载:如果需要更新,则下载远程project.manifest,比对资源MD5值,下载变更的资源文件
- 搜索路径管理:更新完成后,将新版本资源路径加入搜索路径,确保引擎优先加载最新资源
这种设计有三大优势:
- 增量更新:只下载变化的资源,节省用户流量
- 版本控制:严格管理资源版本,避免混乱
- 回滚机制:如果更新失败,可以回退到旧版本
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与插件配置
2.1 官方资源获取
首先需要从官方获取以下关键资源:
- HotUpdate.ts - 热更新核心逻辑脚本
- manifest-generator - 生成manifest文件的Node.js脚本
- hot-update插件 - 打包后自动处理manifest
- hot-update-local-ip插件 - 本地开发时配置服务器地址
这些资源可以在Cocos官方GitHub仓库的示例项目中找到,或者通过官方文档中的链接下载。
2.2 插件安装与配置
将获取的两个插件安装到项目根目录的extensions文件夹中:
code复制your-project/
├── extensions/
│ ├── hot-update/
│ └── hot-update-local-ip/
hot-update插件无需修改,它会在构建时自动完成以下工作:
- 在main.js中注入热更新重启后的处理逻辑
- 管理资源搜索路径的切换
- 处理更新失败的回滚机制
hot-update-local-ip插件需要根据你的开发环境进行配置:
javascript复制// extensions/hot-update-local-ip/hook.js
function getIPAdress() {
return "http://你的本地IP:3001"; // 修改为你的本地服务器地址
}
const version = '1.0.1'; // 初始版本号,后续可通过脚本动态设置
重要提示:修改插件配置后,必须完全重启Cocos Creator才能使更改生效。简单的重新加载项目是不够的。
3. Manifest文件生成系统
3.1 Manifest生成脚本配置
官方提供的manifest-generator脚本需要放置在项目根目录下。这个脚本的核心功能是:
- 扫描指定目录下的所有资源文件
- 计算每个文件的MD5哈希值
- 生成包含版本信息和文件校验信息的manifest文件
关键配置项修改:
javascript复制// manifest-generator.js
manifest.packageUrl = "http://你的服务器地址/ios";
manifest.remoteManifestUrl = "http://你的服务器地址/ios/project.manifest";
manifest.remoteVersionUrl = "http://你的服务器地址/ios/version.manifest";
3.2 目录结构规范
为确保manifest生成正确,需要遵循以下目录结构:
code复制your-project/
