关于微信小游戏资源分包(教程 仅支持至1.9.3)

看到有人发这帖求助,官方给予优先级高的回答。。。写个简单教程吧。。

官方同学,赶紧修复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的还是尽量别用吧

6赞

你这个只能支持到1.9.3的,之后的版本都不能用

所以个人开发的游戏资源都很小吗?我们棋牌的资源都20多MB了
用cdn多方便:grinning:

哦,原来如此,我好久都没升级版本,自己把引擎改了很多东西不敢升级:sweat:

国内免费的CDN延迟太高了,服务还没保障。之前被几个CDN服务商无缘无故突然停掉服务,怎么申诉无人理。过一周再打电话问你怎么不用了。。。FUCK
大一点的个人资质搞不了了
一般都是买个按流量计费的服务器,对于个人来说,成本还是高

赞同楼主,资源6m多用这个方法好,能不能更新一个2.0可用版本啊:grin:感谢

晚点试下。最近开发任务有点繁重,不打算升级到2.x,除非支持发布更多平台,不然升级对于我来说没啥意义。。基本都没用ccc的控件了,只用了组件模式和编辑器

mark

你们cdn是采用 在 main.js 里修改 libraryPath 和 rawAssetsBase 参数吗,还是在启动的时候把cdn采用请求的方式下载下来,在注册到rawAssetsBase参数上。
我遇到一个问题,我把资源放到cdn上,因为是按需加载,所以第一次的加载图片资源的时候,会卡顿一下。