看到有人发这帖求助,官方给予优先级高的回答。。。写个简单教程吧。。
官方同学,赶紧修复BUG,支持百度小游戏吧。
资源分包是最简单的,不涉及到代码,资源大的文件一般都是 图片,音乐。只讲最常用的搞法,别的自理。只要把动态图片全T出去了,基本大部分小游戏都可以满足,而代码分包很大型的项目才有用。
代码和prefab因为被编译了,不用creator的其实不好单独分包加载。除非比较了解这个 编译 过程。
微信自带的教程
https://developers.weixin.qq.com/minigame/dev/tutorial/base/subpackages.html
一般来说,preload下的资源是必须优先加载的,所有静态资源,拖到场景里的都丢preload,loading界面肯定丢主包。
preload必须在主包,也是loading界面最优先加载的内容
我项目的目录结构
resources
– preload — 必须首先加载的 prefab 和 texture 等等
– texture — 动态加载的图片资源
现在只把 texture 资源分包
非常简单
1 配置game.json ,添加分包描述
“subpackages”: [
{
“name”: “subpackage”,
“root”: “res/raw-assets/resources/texture/”
}
2 在分包texture目录下加个空白 game.js
3 在代码,loading界面
if(cc.sys.platform == cc.sys.WECHAT_GAME){
var wx_load_task = wx.loadSubpackage({
name: 'subpackage', // name 可以填 name 或者 root
success(res) {
// 分包加载成功后通过 success 回调
// 这里继续走正常不用分包的逻辑
},
fail(res) {
// 分包加载失败通过 fail 回调
//可以不处理
}
})wx_load_task.onProgressUpdate = function(res){
//显示loading进度,一般秒速加载,可以不做
} }
4 把 game.json, game.js 文件创建成模板

好了,4M限制基本上变8M了
注意,如果不是微信小游戏,设计上,preload里可以不存在一些拖到场景中的物件,编译时会自动关联,自动优先加载,但是用分包,因为所有prefab都在主包里,所以拖到prefab里面的内容也必须在主包里,所以我就都丢preload里了。也就是一些通用UI,几百K
分包大概会多1-2秒的首页卡顿。有条件CDN的还是尽量别用吧


感谢