Laya分包教程--小米版(没办法啊,我一开始的标题写错导致我都搜不到自己的文章,这不行啊,我那么认真写的没多少人看到的话不是很亏?)
以小米分包为例,首先,官方的教程文档很久没更新了,关于包体大小限制这些信息并没更新,建议去小米那边查看。
目录
一、检查是否需要分包
目前小米快游戏的包体大小限制是5M,如果说你不分包直接压缩发布的话,那个dist目录下的rpk文件大小超过5m,那你上传到小米那边去审核的话肯定过不了。
这里是未分包的情况下的截图
如果上面的dist文件下的rpk文件大小不超过官方限制,那就没必要分包。
上图是小米开放平台的文档,再过段时间应该还会更新,自行去官网找吧,这里只做参考。链接在这
二、找到rpk文件
在上面的步骤基础上,找到你项目文件夹中的rpk文件,发布之后的rpk文件就在release/xmgame/quickgame/dist文件夹中
release/xmgame/quickgame/dist这段地址中的xmgame是指的小米快游戏的发布目录,如果你是发布成oppo小游戏的话,那它的地址就是release/oppogame/quickgame/dist,如下图所示。
rpk文件找到了,那就该看下一步怎么做了。
三、检查rpk文件中哪些文件夹较大
》》》》
是不是很纳闷,就这么一个rpk文件摆在那,我咋看它哪个文件夹更大,神经病啊这个作者,别急,你把这个rpk文件的后缀名改一下,改成zip或者rar啊啥的压缩包格式的后缀名。然后你就可以解压了。也就是说把test.rpk改成test.zip。
现在解压test.zip的话就是类似上图这样的了,别以为都是一样的项目结构哈,这是我公司的项目,你那边的项目结构咋样我不知道。
那么接下来我们就要检查哪个文件夹过大了,最简单的方式就是一个个点开属性查看文件夹是否超过官方限制的分包包体大小了(目前限制是每个分包包体不可超过5m)。
一般来说文件夹超大小限制的都是images文件夹,也就是图片文件夹。不信你查看这个文件的大小,
当然,有的时候也不止一个images文件夹超过大小限制,所以要全部好好检查一遍。(草,我也嫌麻烦啊,但我也没辙啊)
知道哪些文件夹过大以后就可以开始分包了。
四、分包
①、勾选设置分包
②、分包选项设置
-
在分包选项中,分包名是自定义的,就是你想取啥都行,反正乱取的话坑的是你自己,不关我事,这个分包名后面会在代码里调用的
-
分包文件(夹)就是你在前面的步骤里找到的那些超过文件大小限制的文件夹,像images文件夹超限制了,你就可以写上images,
-
在你刚找到的需要分包的文件夹中新建一个main.js,这个main.js不需要写什么内容,说白了就是引擎通过你写的分包文件夹和main.js来定位你需要分包的文件夹。
-
这里再放个示例,假如说你的res文件夹较大,那就写入分包,如果说就只是某个文件夹中的某个子文件夹大了一点点,那你可以参照roles:images/roles这样的写法去改改,记得要改啊!我写的是根据我公司项目来写的。
-
如果说你设置了分包规则之后发布时它报错,说xxx(你写的分包文件夹名)找不到,那就是你写的路径出错了,这个路径是根据bin目录的结构来的
-
分包文件(夹)填写时需要注意的点:虽然上面说到images文件夹过大的话你可以在这里写入images;
-
但有个问题需要注意,就是分包的时候这个引擎很坑爹的,它并不只是查找到当前目录下的images文件夹,而是整个项目文件的images文件夹;
也就是说,你原本只需要分包一个images文件夹而已,但如果这个项目中还有别的地方又images文件夹,哦豁,它会把所有的images文件夹都打包进这个分包路径去的,所以怎么处理这里你得自己想想了,写出来篇幅太大,我懒不想写。
③、现在就可以分包了。如果还报错说你哪个包体过大,那就重复上面的步骤。不过分包归分包,你还得将它们引用回来才能使代码正常运行。
五、写入分包加载代码并进行引用
laya官网那边有给代码,反正就是写到你自己的代码里边去,嘛,用个函数封装起来吧,然后在main.ts文件中调用这个函数,像我上面不是写了两个分包选项么,我懒,就直接复制粘贴两次代码了
上图中那个小的红框里面的res就是我前面说到的你们自己设置的分包名。
在Main.ts中去调用这个函数,甭看我代码里的xmSdk.xmObj啥的啊,那个只是我用来判断当前是不是小米手机的,还有,这里的xmSdk指向的是我的小米对接文件,你们自己写去
差不多就这些了。