一、分包
1、定义:游戏分包是将游戏内容按一定规则拆分成几个包,在首次启动时先下载必要的包(主包),开发者在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。
2、目的:优化游戏启动速度,减少玩家等待时间,提升用户体验。
3、限制条件:各大平台对分包大小有限制,如微信小游戏整个所有分包大小不超过8M,单个分包/主包大小不能超过4M;Unity导出来的webgl文件较大,无法满足平台包体限制,使用Unity分包可以做到主包4Mb+分包30Mb。
二、不同平台的分包方式及特点
平台 | 分包方式 | 特点 |
微信小游戏 | CocosCreator引擎封装了分包功能,使用方便,选定代码目录设为子包,通过cc.loader.downloader.loadSubpackage 加载。 | 资源分包意义不大,主要拆分代码,需注意加载顺序和代码调用关系。 |
QQ小游戏 | 完全兼容微信,用CocosCreator构建的微信小游戏包,改appId后可直接当成QQ小游戏运行,分包方式与微信小游戏类似。 | 无特殊说明,可参考微信小游戏分包方式。 |
抖音小游戏 | 推荐使用资源分包优化启动速度,抖音云提供CDN服务。 | 需开通云环境,使用Addressables插件对资源分组,配置远程加载路径等操作来实现分包加载。 |
三、分包的操作流程(以CocosCreator为例)
1、设置分包:在Creator编辑器选定需要设置为分包的代码目录,在右侧“属性检查器”里勾选“配置为子包”,填入相应的分包名。
2、加载分包:使用cc.loader.downloader.loadSubpackage
传入分包名,加载相应分包。cc.loader.downloader.loadSubpackage('subA', (err) => { if (err) { return console.error(err); } console.log('load subpackage successfully.'); });
。
四、编码注意事项
1、主包与分包的调用关系:主包是最早被加载的,其代码可以被任意分包调用,但在分包加载进来前,主包不能调用分包的代码,否则会报错。
2、场景或Prefab的加载:加载场景或Prefab时,如果它们绑定的代码属于分包,则需要先加载该分包,才能使用该场景或Prefab,否则报错。
五、常见问题与解答
1、问题:如何判断游戏是否需要进行分包?
答:当游戏的内容较多,导致首包大小超过平台限制时,就需要考虑进行分包,微信小游戏要求首包大小不超过4M,如果游戏的资源和代码总和超过了这个限制,就需要将部分内容拆分到分包中,以减小首包大小,满足平台要求。
2、问题:不同平台的分包方式是否通用?
答:不同平台的分包方式有一定差异,并不完全通用,虽然有些引擎(如CocosCreator)对部分平台(如微信小游戏和QQ小游戏)的分包操作有相似之处,但像抖音小游戏等平台有其特定的分包方式和要求,如需要使用Addressables插件、开通云环境、配置CDN等,在开发游戏时,需要根据目标平台的要求选择合适的分包方式。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1631663.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复