返回

没有官方的Cocos Creator热更新,我们为你指条明路

Android

Cocos Creator热更新:超越官方解决方案的非官方方案

痛点

Cocos官方提供的热更新方案虽然有用,但对于复杂和注重安全的项目来说,它存在一些局限性。为了解决这些问题,我们开发了一个非官方的热更新方案,它可以提供更灵活、更安全、更高效的热更新体验。

解决方案

我们的方案包括以下主要方面:

  • 在Cocos引擎启动前开始热更新流程
  • 使用git进行热更新资源的版本控制
  • 使用webpack编译热更脚本
  • 使用json加密热更配置文件
  • 使用AES算法加密热更目录
  • 使用RSA算法加密热更文件

流程图

热更新流程图

代码示例

热更脚本

// 热更脚本
const {ccclass, property} = cc._decorator;

@ccclass
export default class HotUpdate extends cc.Component {

    @property({
        type: cc.Asset,
        visible: true
    })
    hotUpdateScript: cc.Asset = null;

    start () {
        cc.assetManager.loadBundle('hotupdate', (err, bundle) => {
            if (err) {
                cc.error(err);
                return;
            }

            bundle.load(this.hotUpdateScript, (err, asset) => {
                if (err) {
                    cc.error(err);
                    return;
                }

                const script = asset.addRef();
                script.init();
            });
        });
    }

}

热更配置文件

{
    "version": "1.0.0",
    "resources": [
        "res/texture/background.png",
        "res/audio/sound.mp3"
    ],
    "scripts": [
        "scripts/main.js",
        "scripts/game.js"
    ],
    "configs": [
        "configs/config.json"
    ]
}

优点

我们的方案提供了以下优点:

  • 更早开始热更新流程: 不再受限于引擎启动后才能开始热更新。
  • 更方便的版本控制: 使用git管理热更新资源,简化版本跟踪和回滚。
  • 更轻松的脚本编译: 利用webpack自动编译热更脚本,节省时间和精力。
  • 更安全的配置文件加密: 采用json加密热更配置文件,防止未经授权的访问。
  • 更有效的目录加密: 使用AES算法加密热更目录,确保资源的保密性。
  • 更可靠的文件加密: 使用RSA算法加密热更文件,提供强大的加密保护。

结论

我们的非官方Cocos Creator热更新方案为开发者提供了超越官方解决方案的强大选择。通过更灵活、更安全、更有效的特性,它可以帮助项目提高热更新效率,增强安全性,并简化开发流程。

常见问题解答

1. 为什么需要非官方的热更新方案?

官方方案虽然实用,但它不能满足我们对早期热更新、版本控制和安全性的要求。

2. 如何在项目中集成这个方案?

通过遵循文章中提供的步骤,开发者可以轻松地将我们的方案集成到他们的项目中。

3. 该方案是否适用于所有Cocos Creator版本?

该方案经过测试,适用于最新版本的Cocos Creator。

4. 是否需要额外的工具或依赖项来使用该方案?

需要使用git、webpack和openssl等工具来实现该方案的全部功能。

5. 是否有示例代码或项目可以参考?

文章中提供了热更脚本和配置文件的示例代码。此外,我们还在GitHub上提供了一个完整的示例项目。