• 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 所有文件 拷贝其中:放到服务器中。

    大致如下:

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

     

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

    ➥运行App,更新资源

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

    我们直接打开APP:

     

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

  • 相关阅读:
    jQuery动态添加元素后,元素注册事件失效
    Docker从入门到实战
    BeautifulSoup的使用
    6-10java8中关于接口的新特性
    月入10.3K,苦逼土木狗转行5G网路优化工程师:对象没了之后,我选择转行!
    JavaScript快速入门
    贪心算法-nyoj-91-阶乘之和
    Pandas 掉包侠刷题实战--条件筛选
    Swift 协议
    14.4、SpringWebFlux-1
  • 原文地址:https://blog.csdn.net/nicepainkiller/article/details/126427322