作为以后端选手,吭哧吭哧的好不容易用cocos开发了一款小游戏,
上传的时候发现包太大了,主包超过4M;
我不是选小游戏分包了吗? 怎么还超?
分包的方案:
- 功能裁剪
- 资源压缩
- 主包迁移
- 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 的模块,都会在打包时,放入子包,以减少主包占用。
这是我写的小游戏 ,用来练手的, 跟屎一样