Cocos Creator 3.x 热更新

前言:游戏做热更新 是基本需求; 好在 cocos-creator 已经为我们做好了方案,相对于 U3D 的热更新方案来说,使用起来很简便!,不用关注很多细节

本文使用的是 cocos-creator 3.5.2 版本 

 

官方文档 :热更新范例教程 · Cocos Creatorhttps://docs.cocos.com/creator/3.5/manual/zh/advanced-topics/hot-update.html

官方demo:mirrors_cocos-creator/tutorial-hot-update - Gitee.comhttps://gitee.com/mirrors_cocos-creator/tutorial-hot-update/tree/master

extensions  文件夹中的脚本:主要用于 在构建完毕 之后,  在对应构建的的  build 子目录中的 main.js 中添加  资源路径逻辑,也就是定位到你更新的资源路径中

  

其实就是一个立即执行函数,把 引用的路径添加进去

  version_generator.js  脚本是用于 对你构建的资源 进行 哈希签名,最终生成   project.manifestversion.manifest 文件,用于 资源比对是否进行下载更新,

project.manifest  内容大致如下:记录资源文件的 哈希值 文件大小,以及文件清单

  version.manifest  文件主要作用就是 记录当前资源的版本信息  1.0.3

当 App 端需要检查更新的时候 ,会比对 服务端和本地 version.manifest 文件,如果版本一致则会跳过,否则  比对服务器  project.manifest  和 本地 project.mainfest 找到需要下载的文件。➤ ➤ ➤ ➤ 

>>>>>>> 没有更新过的话,  会找到  添加到工程路径 assets 目录下的 version.manifest 和 project.mainfest 文件,所以我们会在 项目 assets 路径中添加  project.manifest  和 version.manifest 文件 ; 否则第一次更新时候无法找到本地 与服务器对文做 对比,  就会出错!!

这里基本讲解完毕 各类文件以及脚本的作用,下我我们来直接上手;

➥构建项目发布App

目标:构建一个母包,用于后面热更新资源

页面:

发布页面修改一下报名,其余默认就可以,点击构建

 在项目根目录中 运行:version_generator 文件

 

node version_generator.js -v 1.0.0 -u http://192.168.10.88:8080/remote-assets/ -s build/android\assets -d remote-assets/
  •  -v 指定资源版本
  •  -u 设置你的服务器 资源路径
  •  -s 指定你 构建项目生成的资源文件路径,(对资源生成清单
  •  -d 生成 project.manifest 和 version.manifest 的文件路径,我们暂且放在项目根目录的  remote-assets 目录中;

  

运行完毕之后:remote-assets 文件夹中会多出 两个文件;

 因为是打 母包我们要把这两个文件 拷贝到 项目根目录的 assets 路径中。(替换掉Demo 中自带这两个文件,这两个文件我们不能用 配置信息不对

备注: 因为刚刚构建的项目中  project.manifest   version.manifest 文件不对(demo项目中文件服务器地址)或者没有(新建项目中没有);我们需要再次 构建包含 project.manifest   version.manifest  build 文件的资源;

Android Studio 跑起来我们构建的 Android项目!!

这里补充一点:因为我实在局域网测试的,使用的是 http请求;Android 7.0 以后需要额外配置才能继续访问;

我们的手机已经跑起来了:

➥修改页面,制作需要更新的资源

Ⅰ:  我们给 UI添加一个动画

重新构建项目:

Ⅲ 构建完成后,重新生成  project.manifestversion.manifest,* 版本号 加一,否则,还会以前版本

node version_generator.js -v 1.0.1 -u http://192.168.10.88:8080/remote-assets/ -s build/android\assets -d remote-assets/

我们在桌面(位置随意 不要项目根目录就可以)新建一个名称为文件夹 remote-assets 的文件夹;将刚刚生成的   project.manifestversion.manifest; 和 构建项目资源路径的  assets 所有文件 拷贝其中:放到服务器中。

大致如下:

 然后用 容器 跑起来;ngixn iis  都可以,我这里使用的是: live-server;  在浏览器中访问到就成功

 

* 这个时候不要再次运行  Android Studio;再次运行的话,App就会加载到最新的资源;我们直接打开APP

➥运行App,更新资源

这个时候不要再次运行  Android Studio;再次运行的话,App就会加载到最新的资源;

我们直接打开APP:

 

更新完资源,重新启动之后 新加的动画已经在播放了! 大功告成!

猜你喜欢

转载自blog.csdn.net/nicepainkiller/article/details/126427322
今日推荐