当前位置: 首页 > news >正文

cocos2dx-js cocos creator 实现热更新

本项目使用的cocos creator 的版本是:3.8.8
官方给了一个热更新的demo项目:https://docs.cocos.com/creator/4.0/manual/zh/advanced-topics/hot-update-manager.html
上面详细介绍了热更新的原理,这里不再赘述。
本次使用的项目demo: https://gitee.com/wgslucky/cocos-tutorial-hot-update
这里以发布为window程序为例!
注意,在cocos creator中不能热更新,需要打包发布为原生程序才可以,比如window,安卓,ios等平台。

先准备一个web服务器,可以下载不同版本的游戏资源,这里我使用nginx做静态文件代理,可以当成web服务使用。安装好nginx之后,配置一下代理目录:

location /cocos-hot/{alias/home/nginx/project/cocos-hot-update/;}

新版本的游戏资源将放在/home/nginx/project/cocos-hot-update目录下面。
这样可以通过:http://ip:端口/cocos-hot/xxx/project.manifest 文件,其它资源也是一样的。

一, 构建版本为1.0.0的项目

我把版本号拼接在了游戏名称之后,这样在version_generator插件中就可以取到版本号了。其实cocos creator应该加个填写版本号地方,方便扩展脚本中获取。

构建完成之后,会调用version_generator.js插件,生成版本信息文件: project.manifest和version.manifest

插件目录:

生成的project.manifest文件内容是:

nodeversion_generator.js-v1.0.0-uhttps://www.xinyues.cn/cocos-hot/remote-assets/-sG:\work\开源项目\cocos-tutorial-hot-update\build\windows-001\data-dG:\work\开源项目\cocos-tutorial-hot-update\assets

-v 指定 Manifest 文件的主版本号。
-u 指定服务器远程包的地址,这个地址需要和最初发布版本中 Manifest 文件的远程包地址一致,否则无法检测到更新,。
-s 本地原生打包版本的目录相对路径, 比如 ./build/android/assets。
-d 保存 Manifest 文件的相对路径。

第一次构建的时候,项目可能会使用的是旧project.manifest文件,为了保持最近版本迭代,可以再构建一次。

为了区分更新前,和更新之后的不同,我加了一个新场景NewGameMain,里面只有一个按钮:

二,发布生成版本1.0.0项目的window调试程序
依次点击版本1.0.0的生成-> 运行:


点进入场景:

二, 修改NewGameMain场景的文字,并重新构建:

新的版本设置为1.0.1 :

三,把新版本构建好的资源上传到服务器

资源包括: project.manifest, version.manifest,以及构建输出目录data下面的assets和src文件内的所有文件。

把assets和scr打包成压缩包,上传到服务器并解压。

这里面的资源可以先在浏览器上面试一下,看看能不能访问到。
注意权限问题,如果文件是只读权限的话,下载不到,修改权限:
chmod 777 文件名

四,检测更新
启动旧版本的程序,点击检查更新:

发现新版本,可以去更新了,点击立刻更新,进度条会变化,然后程序会自动重启,重启之后,再点进入新场景,就可以看到更新后的内容了

http://www.jsqmd.com/news/1075442/

相关文章:

  • GStreamer:开源流媒体处理框架
  • 嵌入式系统电源管理实战:从CMOS原理到QorIQ平台深度睡眠实现
  • 影刀RPA项目实战:财务报表自动采集与生成
  • 如何高效对比视频质量差异?video-compare分屏对比工具实战指南
  • 深度解析Dism++:Windows系统维护与优化架构设计与实现原理
  • 如何在3分钟内快速搭建B站视频解析API?完整配置指南
  • 当Win11企业版系统没法使用右键菜单找到“以管理员身份运行”选项来安装软件的解决方法(以安装Python为例)
  • 基于Python+Django+MySQL的健身房管理系统设计与实现(附核心代码)
  • 3个秘诀:Element Plus如何让Vue 3企业应用开发效率提升200%
  • 通达信缠论插件:3分钟搞定专业级技术分析
  • 如何3分钟完成Honey Select 2终极汉化去码:完整配置指南
  • 【2026年华为暑期实习(AI)-6月24日-第三题- 最优分段常数量化】(题目+思路+JavaC++Python解析+在线测试)
  • allegro查看器件高度
  • 提升Java奋斗学习,每日打卡
  • video-compare:开源视频对比工具的终极使用指南
  • 3步搞定黑苹果配置:OpCore Simplify让复杂变简单
  • 解密FanControl风扇调校:从电脑噪音到静音高手的完美蜕变
  • 硕博生私藏改写网站曝光!一键优化语句,查重率与AI疑似率双双压降至合格
  • 2026年亲测AI写作辅助软件指南(合规高效版)
  • python: Worker Pool Pattern
  • 2026 年易柯森特解析:工程监理与造价咨询服务的不同点
  • Agent Runtime 范式革命:Session 作为事件日志的工程实践
  • DonkeyCar端到端自动驾驶实战:行为克隆与树莓派部署
  • Java两种创建线程方式:继承Thread vs 实现Runnable 区别详解
  • 国产大模型实战指南:从合同审查到多模态票据分析
  • AI应用方向:AI智能客服与对话AI
  • 5分钟完成FF14国际服中文汉化:开源工具完全指南
  • 傻子可懂的 Harness Engineering 入门教程 + 项目实战,一次搞懂 AI 编程工程化!
  • [Android MVVM 架构笔记] 基于 Kotlin 类委托与系统级安全扩展的全局 Loading 方案
  • 3D医学影像AI建模实战指南:小样本、高鲁棒、可部署的四类可靠路径