cocos creator 接入热更新工具 !!!

本文档详述了如何在Cocos Creator中接入热更新功能。首先新建hotUpdate工程,添加必要文件和场景,并从官网获取示例脚本进行修改。接着在UpdatePanel脚本中添加属性,创建UI界面展示更新进度。通过安装热更新插件,构建并发布项目。使用express作为服务器框架,部署更新文件。最后,展示了更新流程和结果,说明热更新已成功实现。

新建一个工程hotUpdate
在这里插入图片描述
在资源管理器中添加如下文件夹与场景在这里插入图片描述在官网链接中获取示例脚本
在hotUpdate中复制官网代码改成如下代码,这里我删除了customManifestStr 及其引用,同时有改动的地方用//*标记了

var UpdatePanel = require('../UI/UpdatePanel');

cc.Class({
   
   
    extends: cc.Component,

    properties: {
   
   
        panel: UpdatePanel,
        manifestUrl: {
   
   
            type: cc.Asset,
            default: null
        },
        updateUI: cc.Node,
        _updating: false,
        _canRetry: false,
        _storagePath: ''
    },

    onClick(event, data) {
   
         //*
        if (data == "sure") {
   
   
            this.hotUpdate();
            this.updateUI.active = false
        }
        else if (data == "cancel") {
   
   
            cc.director.end();
        }
    },

    checkCb: function (event) {
   
   
        cc.log('Code: ' + event.getEventCode());
        let isUpdate = false;    //*
        switch (event.getEventCode()) {
   
   
            case jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:
                this.panel.info.string = "未找到本地清单文件,已跳过热更新.";
                break;
            case jsb.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST:
            case jsb.EventAssetsManager.ERROR_PARSE_MANIFEST:
                this.panel.info.string = "无法下载清单文件,已跳过热更新.";
                break;
            case jsb.EventAssetsManager.ALREADY_UP_TO_DATE:
                this.panel.info.string = "已经是最新远程版本的最新版本.";
                cc.director.loadScene("main")       //*
                break;
            case jsb.EventAssetsManager.NEW_VERSION_FOUND:
                this.panel.info.string = '找到新版本,请尝试更新.';
                isUpdate = true    //*
                // this.panel.checkBtn.active = false;
                this.panel.fileProgress.progress = 0;
                this.panel.byteProgress.progress = 0;
                break;
            default:
                return;
        }

        this._am.setEventCallback(null);
        this._checkListener = null;
        this._updating = false;

        if (isUpdate) {
   
          //*
            this.updateUI.active = true;
        }
    },

    updateCb: function (event) {
   
   
        var needRestart = false;
        var failed = false;
        switch (event.getEventCode()) {
   
   
            case jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:
                this.panel.info.string = 'No local man
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值