Creator 新增微信小游戏分包方案,轻松实现分包加载

小游戏分包加载功能升级
微信小游戏日前增加了分包加载功能,运用分包功能,小游戏代码包总上限可以从之前的 4 M提升至 8 M。开发者可以根据游戏品类和场景需要,在合适时机加载指定包,提升打开速度,优化用户体验。

这对于中重度手游来说,绝对是一个利好的消息,以往小游戏多以轻度休闲游戏为主,分包功能的出现,预示着小游戏类型将越来越丰富。

中重度手游往往依赖强社交,而微信拥有强大的社交关系网络,能轻松实现传播和用户获取,Creator V1.10 Preview 版本推出的分包方案将帮助各位开发者进行中重度小游戏开发。

分包加载的原理与效果
分包加载,就是把游戏内容按一定规则拆分在几个包里,在首次启动的时候只下载必要的包,这个必要的包称为主包,开发者可以在主包内触发下载其他子包,这样可以有效降低首次启动的消耗时间。

Creator 如何实现分包加载
Cocos Creator V1.10 Preview 预览版推出的分包方案,只需要简单的几个步骤即可完成小游戏分包:

配置分包
项目构建
运行游戏
加载分包
1、1

一、配置分包:

创建分包目录:

新建一个文件夹,将需要延后加载的脚本放在这个目录下。

配置该目录为子包:

1)Creator 是以文件夹作为单位来进行分包配置的,当我们选择一个文件夹时,属性检查器中便会出现文件夹的相关配置选项。

2)勾选“配置为子包”,所选择的文件夹下的代码即是子包的内容。

3)子包名会在加载子包时作为加载的名字传入,默认会使用这个文件夹的名字。

二、项目构建

1)代码分包的作用只会在项目构建后才会体现,预览的时候还是按照整包来进行加载的。

2)项目构建后,系统会在构建目录下的 src/assets 目录下生成对应的分包文件。

例:如果将 cases/01_graphics 文件夹配置为了子包,那么将会项目构建后生成 src/assets/cases/01_graphics.js 文件。这个文件包含了 01_graphics 文件夹下的所有代码,并且会将这些代码从主包中剔除掉。

3)在微信小游戏平台的构建中,分包的配置会按照规则自动生成到小游戏的 game.json 配置文件中。

三、运行游戏

1)微信小游戏只有特定的版本才能支持分包功能,记得更新你的客户端版本和开发者工具。

微信 6.6.7 客户端,2.1.0 及以上基础库开始支持,请更新至最新客户端版本,开发者工具请使用 1.02.1806120 及以上版本”

2)更新了开发工具后要记住修改基础库。

3)具体请参考微信分包加载文档,文档地址:https://developers.weixin.qq.com/minigame/dev/tutorial/base/subpackages.html (可复制至浏览器中打开)

四、加载分包

1)Cocos 引擎提供了一个统一的 api
cc.loader.downloader.loadSubpackage 来加载分包代码,适用于所有平台。

2)loadSubpackage 需要传入一个分包的名字,这个名字即是之前你在项目中配置的分包名字,默认为分包文件夹的名字。

3)当分包加载完成后,会触发回调,如果加载失败的话,会返回一个错误信息。

五、参考示例
分包方案参考示例(可复制至浏览器中打开):
https://github.com/cocos-creator/example-cases/tree/master/assets/cases/subpackage

如何下载新版 Creator
Windows 版本下载链接:
http://download.cocos.com/CocosCreator/beta/CocosCreator_v1.10.0-preview.1_20180629.7z
Mac 版本下载链接:
http://download.cocos.com/CocosCreator/beta/CocosCreator_v1.10.0-preview.1_20180629.dmg

各位开发者可进入上方链接下载 Cocos Creator V 1.0 Preview 版本体验分包功能,在使用过程中,如果有任何技术问题以及意见或建议,欢迎在 Cocos 官方论坛中发帖交流。

6赞

6666666,一楼占座

1赞

这次Preview没有更新细节吗

分包,期待已久。 JSB 可用吗?

另外,帖子最后一句有错“Cocos Creator V 1.0 Preview 版本体验分包功能”

直接从公众号转的

直接从公众号转的原文

求release note

哪个地方可以看到 勾选“配置为子包”的配置?

应该是要Cocos Creator V1.10 Preview版本才有

分包功能只能代码分包? 代码+资源文件一起做子包不行?

同问,资源如果能分包的话,就更好了。

我分包了,但是加载会报错,有没有正常分包成功的案例? 给点经验?

1赞

微信小游戏分包无效 继续讨论:

微信小游戏分包无效 继续讨论:

https://github.com/cocos-creator/example-cases/tree/master/assets/cases/subpackage 示例不是把场景也当作分包内容了吗

我这边把导出来的数据看了下,资源是没有放到分包里的

Mark一下 以后用的到

如果场景中使用了预制资源以及贴图编译构建时会自动添加到子包下吗? 还是需要将资源(字体、贴图、预制支援)手动保存到子包下。

从Demo来看JSB是支持的。目前不支持CC_PREVIEW(模拟器预览)以及CC_QQPLAY(QQ玩一玩)

有说明的不能超过大小

Mark