作为以后端选手,吭哧吭哧的好不容易用cocos开发了一款小游戏,
上传的时候发现包太大了,主包超过4M;
在这里插入图片描述
我不是选小游戏分包了吗? 怎么还超?
在这里插入图片描述
分包的方案:

  1. 功能裁剪
  2. 资源压缩
  3. 主包迁移
  4. WASM分离

1. 功能裁剪
项目设置中引擎管理器中 功能裁剪里面有很多个引擎,我们剔除掉没用的引擎,就可以减少小程序报的大小; 我做的是一个简单的2D小游戏,只选择了下面的几种引擎

在这里插入图片描述
在这里插入图片描述

2. 资源压缩
我做的小游戏,资源包里面塞了很多图片,有些用不到的剔除掉;
很多图片是可以进行压缩的,这也能不少体积
我是通过 docsmall 这种网站进行压缩的的

3. 主包迁移
还有一种比较苟的方式, 但是特别彻底;
原理就是主包只放一个非常简单的开始场景;
真整的游戏场景放到子包里,
我的做法比较粗,
第一步 把原有的游戏和资源 全部塞到一个文件夹中,取名game
第二步, 创建一个开始场景, 分包不会自动加载,所以我们要手动加载
第三步, 添加一个按钮,绑定事件,跳转到真整的游戏场景

  protected onLoad(): void {
    assetManager.loadBundle("game", (err, bundle: AssetManager.Bundle) => {});
  }

start_button_clicked() {
    director.loadScene("game_scene");
  }

4. WASM分离
WASM这玩意儿干啥的,我不也不清楚,只是说了这句话
所有开启了 WASM 的模块,都会在打包时,放入子包,以减少主包占用。
在这里插入图片描述

这是我写的小游戏 ,用来练手的, 跟屎一样

在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐