cocos2.x+微信小游戏 使用远程资源 (减少包体大小)

       控制台log输出为何频频失踪?
  wxss代码为何频频失效?
  wxml布局为何乱作一团?
  究竟是道德的沦丧?还是人性的缺失?
  让我们一起来 走 跑进科学


前言

当我们使用cocos开发微信小游戏时,我们经常需要使用一些资源,比如图片、音效和动画。过多的资源会导致游戏包体过大,这会给玩家带来不好的用户体验。因此,我们需要使用远程资源bundle技术来减少包体大小。


正文

1.打开cocos 进入项目在assets下新建resources目录

 这个目录是默认的远程加载的目录

当然如果你还有其他目录的话也可以自己新建一个文件夹 比如我这里叫res

 按图中设置一下 因为是远程资源 需要到服务器去加载 推荐使用zip压缩 如果不压缩打包的话一张张图片下载难免有抽风下载失败的概率-v-

2.在构建发布中勾选远程包与验证md5

 然后资源服务器地址就填你的对象存储地址 先发布一下

扫描二维码关注公众号,回复: 15202184 查看本文章

这个文件夹就是远程资源包 

 我们直接把这个remote扔掉对象存储上

比如我把他放到了我的对象存储的根目录下 然后回过头再去填写远程资源存放地址

随便点个文件查看详情拿一下远程资源地址 下图中蓝色选中的就是 不需要填写remote最后结尾应为/

 

填好了再发布一版 然后重新上传remote文件夹到对象存储 

3.在游戏启动时,我们需要加载远程bundle。如果你是像我一样自定义了一个bundle目录res的话 可以像我这么写:

const { ccclass, property } = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

    @property(cc.Node)
    bar: cc.Node = null;//显示进度百分比

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {}
    start() {
        cc.assetManager.loadBundle('res', {//res就是我之前新建的bundle名称
            onFileProgress: function (e) {
                _this.bar.getComponent(cc.Label).string = Math.floor(e.progress) + '%'
                //将百分比赋值给页面上的文本
            }
        }, (err, bundle) => {
            if (err) {
                cc.error(err);
                cc.assetManager.cacheManager.clearCache();
                //如果报错就重新加载
                this.start()
                return;
            }
        });

    }
    
    // update (dt) {}
}

4.构建发布成功后,我们可以通过微信开发者工具来测试游戏。

导入开发者工具后 将game.json中的这四条默认值5000改长一点 这里是你 请求或下载的超时时间 有时网速慢亿点 远程包体积大亿点 就会报错网络超时 记得改一下

然后附一张加载图


总结

至此,我们完成了远程资源bundle的使用过程,减少了包体大小,使得游戏更加流畅。

猜你喜欢

转载自blog.csdn.net/m0_66016308/article/details/130203496