视频学习地址:
视频观看地址
分包加载;
分包加载主要是为了减少主包大小,因为微信上主包大小只有4M.
如果开发者硬件条件比较好,可以直接使用从服务器加载资源,就可以省略编写分包逻辑
微信
开发者工具下载
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
//以下内容仅vip可见
配置Game.json
“subpackages”: [
{
“name”: “Home”,
“root”: “res3d/LayaScene_Home/”
},
{
“name”: “Game”,
“root”: “res3d/LayaScene_Game/”
},
{
“name”: “SoundMain”,
“root”: “res/sound/main/”
},
{
“name”: “SoundGame”,
“root”: “res/sound/game/”
}
]
添加4个分包
为什么分成4个?
根本目的是为了减少首次加载游戏时长,提高用户首页留存率
假如一个包需要1秒下载完成
方案一:游戏只做一个分包
全部资源下载完毕
用户进入首页就是4秒
方案二;4个分包
首页只加载(Home,SoundMain)
用户进入首页加载耗时2秒
开始游戏加载(Game,SoundGame)
开始游戏加载耗时2秒
案例采用的是第二个方案
发布后,在发布后的目录编辑game.json,勾选保留平台配置文件,防止再次发布被覆盖
所有分包文件夹加上game.js 空文件即可
Loadingview.ts
public startLoad() {
if (Platform.supportSubPackage() == false)
this.fileLoadOk = true;
else {
let sf = this;
console.log("加载分包", this.arg.subpackgeName);
let task: _LoadSubpackageTask = Platform.loadSubpackage_Single(this.arg.subpackgeName, this, this.subpackgeLoadOk);
task.onProgressUpdate(function (res) {
//返回结果微信开发者环境0-100//苹果IOS是0-1 //微信IDE安卓是0-100
//vivo oppo 0-1
sf.currentProgress = res.progress;
});
}
Laya.timer.frameLoop(10, this, this.loopUpdate);
}
subpackgeLoadOk(isok: boolean) {
this.fileLoadOk = isok;
}
增加分包加载逻辑
Homeview.ts
onOpened
if (Platform.supportSubPackage())
Platform.loadSubpackage_Single('SoundMain', this, this.onsubpackgeLoadOk)
else
SoundMgr.instance.BgmPlay();
onsubpackgeLoadOk(isok) {
if (isok) {
SoundMgr.instance.BgmPlay();
}
}
Game.ts
onAwake
//声音模块
// SoundMgr.instance.PlayGameBgm();
//分包后的声音模块
if (Platform.supportSubPackage())
Platform.loadSubpackage_Single('SoundGame', this, this.onsubpackgeLoadOk)
else
SoundMgr.instance.PlayGameBgm();
onsubpackgeLoadOk(isok) {
if (isok)
SoundMgr.instance.PlayGameBgm();
}
关闭碰撞盒线
export default class GameDesgin {
//碰撞体线
public static showaabbBoxLine = !!0;
删除课程例子资源.res3d目录下,保留game和home
发布压缩设置
ls,lh,lav,lmat json格式去空格换行节省空间
$basePath/**/*.{ls,lh,lav,lmat}
打开微信开发者工具,导入项目,成功运行
测试环境
微信开发者工具稳定版 1.02.1910120 (读取场景显示不完整)真机测试没问
https://developers.weixin.qq.com/community/develop/doc/000aaef24f4ee0b36e59755895b801
针对1.03新版本开发者工具2020/08/12视频制作日期
利用版本管理功能重构文件名达到通过开发者工具测试目的
总结,本节实现了分包加载以及在微信开发者工具遇到的问题和处理方法