CocosCreator构建微信或QQ小游戏分包实例教程

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

分包概述

分包加载,是把游戏内容按一定规则拆分成几个包,在首次启动时先下载必要的包,这个必要的包称为「主包」,开发者在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。

但各大平台考虑到承载能力,对分包还是有大小限制的,以微信小游戏为例:

  • 整个小游戏所有分包大小不超过 8M
  • 单个分包/主包大小不能超过 4M

对小游戏来说,分包其实是针对代码而言,资源分包意义不大。因为对于一个游戏,包体内主要就是代码和资源。而上线游戏的资源本身就需要离散方式部署在CDN上,很少跟代码放在一个包内,即便真的放在同一个包内上传到小游戏后台,其实就是微信官方的CDN而已。因此,分包主要就是拆分代码。

分包使用

CocosCreator引擎已经封装了不同平台的分包功能,使用非常方便,主要就两步。

1、Creator编辑器选定需要设置为分包的代码目录,右侧“属性检查器”里勾选“配置为子包”,填入相应的分包名。例如:名为"subA"。

2、使用cc.loader.downloader.loadSubpackage,传入分包名,加载相应分包。

cc.loader.downloader.loadSubpackage('subA', (err) => {
    if (err) {
        return console.error(err);
    }
    console.log('load subpackage successfully.');
});

另外,在编码上有一些注意点:

  • [主包]是最早被加载的,它的代码可以被任意[分包]调用,但在[分包]加载进来前,它不能去调用[分包]的代码,否则报错。
  • 在加载场景或Prefab时,如果它们绑定的脚本属于[分包],则需要先加载该[分包],才能使用该场景或Prefab,否则报错。

CocosCreator实例

  • CocosCreator版本:2.1.2
  • 小游戏分包示例工程 (下载地址)

本文以微信小游戏为例,演示如何把一个Prefab的代码放在分包里。即在主包内先加载分包,然后加载Prefab,最后运行分包内的代码。

主要代码非常简单,就是在 start 中先加载分包,如果成功再加载Prefab。

start() {
    this.loadSub(() => {
        this.loadPrefab();
    });
},

loadPrefab() {
    let self = this;
    cc.loader.loadRes('Prefab/root', cc.Prefab, (err, prefab) => {
        if (err) {
            return cc.error(err.message||err);
        }
        let node = cc.instantiate(prefab);
        !!node && self.node.addChild(node);
        cc.log('Hello: success to create prefab');
    });
},

loadSub(callback) {
    this.loadSubpackage('subA', (err) => {
        if (err) {
            return cc.error(err.message||err);
        }
        !!callback && callback();
    })
},

上面代码中的loadSubpackage是个自定义方法,没有直接使用cc.loader.downloader.loadSubpackage的原因主要是为了更方便的适配不同平台,读者可根据自己的需求而定。代码如下。

loadSubpackage(name, callback) {
    if (CC_WECHATGAME) {
        cc.log('Hello: begin to load subA');

        const loadTask = wx.loadSubpackage({
            name: name, // 分包名字
            success(res) {
                // 分包加载成功
                cc.log('Hello: end to load subA');
                !!callback && callback();
            },
            fail(res) {
                // 分包加载失败
                !!callback && callback('error to loadSubpackage');
            }
        });

        loadTask.onProgressUpdate(res => {
            cc.log('qq.progress=', res.progress);
            cc.log('qq.currLen=', res.totalBytesWritten);
            cc.log('qq.totalLen=', res.totalBytesExpectedToWrite);
        });
    } else {
        !!callback && callback();
    }
}

分包加载成功时显示如下(构建目标:微信小游戏,用微信开发者工具打开)

分包加载失败时显示如下(构建目标:web-mobile,浏览器打开)

适配QQ小游戏

QQ小游戏平台完全兼容微信,用CocosCreator构建出来的微信小游戏包,改appId后是可以直接当成QQ小游戏运行的。

分包兼容H5构建

分包功能是不支持H5的,如果同一份代码设置了分包,则构建出来的H5包不能运行。

因为是否分包是由代码目录的meta文件决定的,我的解决方法是在自动化构建流程中,构建前先还原成不分包的meta文件,构建完后再恢复meta,当然代码里也做好平台区分。这样构建H5时按[不分包]构建,构建微信/QQ小游戏时按[分包]构建,就实现了同一份代码,不同平台都能运行了。

Cocos Creator AssetBundle 游戏分包方案评估   Cocos Creator 2.0 之后推出了AssetBundle系统,类似于Unity3D的AssetBundle。先简单讲一下AssetBundle的原理作用,不涉及具体引擎的具体细节,各个游戏引擎之间也略有差异。   AssetBundle是将游戏中使用的资源分成若干个包,这样做的意义在于减少安装包的体积,让用户快速下载并进入游戏,剩下的资源包在游戏过程中后台下载,甚至可以在需要使用某一整块的资源时再下载,节约用户的流量。   另外,可以给AssetBundle增加版本管理,这可以针对不同的玩家 阅读详情

相关推荐

CocosCreator 微信小游戏

cocos 微信小游戏

m0_56414330的博客 4053

Cocos Creator 微信小游戏 分包设置

版本:2.3.4 参考: cocos教程:分包加载 在微信小游戏中使用分包。因为微信小游戏有包体限制。 主包最大只能4m,分包最大4m,一共最多16m。所以主包只放代码,而图片、json等资源都设置为分包里。 下面看怎么使用分包。 设置resource下文件夹common、game、home等为子包 构建发布微信小游戏 微信小游戏包里自动生成了subpack...

gamedaybyday 7530

cocos creater 3.x 构建QQ小游戏

cocos creater 3.x 构建QQ小游戏详细教程及需要注意的地方,cocos creater 3.x 分辨率动态适配代码

qq_26069551的博客 1799

一文搞定 Cocos 微信小游戏分包策略

2024-05-09 20:00 直播 《微信小游戏分包最佳实践》欢迎预约Error:系统错误,错误码:80051,source size9424KBexceedmaxlimit4MB相信 90% 的朋友第一次发布小游戏时,都会遇上首包限制的问题。社区中有非常多关于如何减少首包大小的文章,但在 Cocos Creator 3.8 版本发布之后,引擎自带分包功能已经非常强大,在不改动引擎...

Cocos的博客 5275

Cocos Creator 3.x 打包微信小游戏,移除插屏动画,提高游戏启动速度

Cocos Creator 3.x 打包微信小游戏,移除插屏动画,提高游戏启动速度

qq_26069551的博客 1811

cocoscreator3.5.2打包微信小游戏发布到QQ小游戏修改

微信小游戏发布到QQ小游戏

xuyid的专栏 1590

CocosCreator发布微信小游戏

环境搭建 1,安装微信开发者工具 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 从上述地址下载,笔者下载的是稳定版。 下载后安装,安装的默认目录为:C:\Program Files (x86)\Tencent\微信web开发者工具 上述安装目录,在接下来配置CocosCreator时会用到。 2,Co...

iningwei的博客 3297

小游戏分包

cocos开发小游戏时的分包操作

做个手艺人的博客 3255

Cocos Creator 3D发布QQ小游戏并打APK包

Cocos Creator 3D版本 : 1.2.0 Visual Studio版本:2017,typeScripts。 1. 构建QQ小游戏 1. 在菜单栏的项目里打开构建发布 因为QQ微信的平台是同源的,所以构建的里面没有QQ的话可以直接选择微信小游戏。 发布路径一般不改,默认发布到项目下的build下面。 如果需要分包的话,需要对每一个需要分包的文件夹做分包处理,打开文件夹的属性检查器,配置为子包。 设备方向更改横竖屏。 APPID策划会给。 远程服务器适用于分包包体超过6M的项目,将项目的Re

the_vnas的博客 1797

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

小游戏分包加载功能升级微信小游戏日前增加了分包加载功能,运用分包功能,小游戏代码包总上限可以从之前的 4 M提升至 8 M。开发者可以根据游戏品类和场景需要,在合适时机加载指定包,提升打开速度,优化用户体验。这对于中重度手游来说,绝对是一个利好的消息,以往小游戏多以轻度休闲游戏为主,分包功能的出现,预示着小游戏类型将越来越丰富。中重度手游往往依赖强社交,而微信拥有强大的社交关系网络,能轻松实现传播...

Cocos的博客 284

微信小游戏开发入门(二)-用CocosCreator官方Demo生成微信小游戏

微信已经放出小游戏的开发工具包,虽然功能尚未完善,但已经可以开发调试了。我们使用CocosCreator官方的polished_project例子来讲解如何生成微信小游戏。 1、下载polished_project工程,地址:https://github.com/cocos-creator/tutorial-first-game/releases/download/v1.2/polished_p

楚游香的博客 4万+

CocosCreator微信小游戏开发避坑指南:从性能优化到上线全流程实战

游戏开发中,渲染性能优化和内存管理是保障流畅体验的核心技术。渲染性能的关键在于控制Draw Call,通过图集打包、合批渲染等技术可有效减少图形API调用次数,从而提升帧率。内存管理则需关注资源生命周期,避免泄漏导致闪退。这些优化对于资源受限的移动端平台尤为重要。在微信小游戏开发场景中,开发者需进一步适配平台特性,例如处理精灵拉伸等渲染兼容性问题,并合理接入广告等平台能力。本文基于实战经验,系统梳理了从项目构建、性能调优到发布上线的完整路径,针对开发中常见的性能瓶颈和平台适配难题,提供了具体的解决方案与避坑

weixin_30416871的博客 334

Cocos跨平台发布指南:QQ小程序与微信小游戏的完整发布流程与优化策略

这里插入图片描述](https://i-blog.csdnimg.cn/direct/2bd08a240ba84783939558ae625403c5.png)https://mp.weixin.qq.com/ 扫描二维码,进入后台设置。资源下载地址的目录建议不用同一个, 避免冲突。【确定】进入下一个界面。

Monkey的博客 1494

微信小游戏开发入门:如何用CocosCreator快速打造你的第一款小游戏

本文详细介绍了如何使用CocosCreator开发微信小游戏的全流程,从环境配置、项目创建到游戏发布。通过实战案例打地鼠游戏,讲解场景搭建、UI设计、游戏逻辑实现及微信平台适配技巧,帮助开发者快速入门并发布自己的第一款微信小游戏

weixin_29009881的博客 416

CocosCreator微信小游戏入门实战《小猫钓鱼》(一):写下第一行代码

转载请保留原文链接:https://blog.csdn.net/zzx023/article/details/83063130 吃饭先拿碗筷,想吃下“微信小游戏”这盘2018年的大菜,我们也得先将我们的“吃饭工具”准备好: CocosCreator 2.0.2 下载地址:http://cocos2d-x.org/filedown/CocosCreator_v2.0.2_win 安装教程...

BigBear的博客 1万+

CocosCreator小游戏排行榜

先贴上几个链接 : https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html?q=     这个是介绍了子域和主域之间的通信 https://www.w3cschool.cn/weixinapp/weixinapp-vibrate.html   微信小程序的接口  当时查震动就是在这里找...

Eric_gg的博客 2万+

CocosCreator微信小游戏入门实战《小猫钓鱼》(十):微信排行榜

转载请保留原文链接:https://blog.csdn.net/zzx023/article/details/83064527   在开始微信排行榜之前,我们先了解一下微信的关系链数据。 https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html   wx.getFriendClou...

BigBear的博客 3882

使用cocos creator开发微信小游戏

CocosCreator在1.8版本开始,就支持一键发布微信小程序,下面是详细的发布步骤: 1、在微信公众平台下载微信开发者工具; 地址:https://mp.weixin.qq.com/debug/wxagame/dev/devtools/download.html?t=2018115,根据需要选择相应的版本。 小游戏开发:https://developers.weixin...

L的博客 7586

CocosCreator微信小游戏带参数分享

微信小游戏分享分为被动分享和主动分享。 被动分享 被动分享为点击小程序右上角,在弹出的菜单栏中选择分享按钮进行分享。菜单栏要显示分享按钮,必须定义wx.onShareAppMessage事件,此事件需要 return 一个 Object,用于自定义转发内容。 TODO: https://blog.csdn.net/haibo19981/article/details/80435808 主动分享 主...

iningwei的博客 3261
上一篇: CocosCreator开发笔记(25)-一些总结
下一篇: Web服务器之Nginx安装
楚游香
楚游香 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄12年 653粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值