所以说图片等资源是不能分包?那这个分包感觉意义不大啊。论坛里好像一直有人问这个问题但是一直没有准确的回复呀
代码分包在于扩展业务逻辑,能实现更复杂的逻辑代码。比如重度一点的项目,4M的代码空间完全不够。
这就是代码分包的意义,注意是代码的分包。
至于资源分包反而重要性没有代码的分包来的大,图片分个包,一样要从服务器下载下来,为何不直接使用远程资源呢?
反而是代码,微信不允许动态加载代码,现在多了个4M的宝贵空间,不留给代码留给资源么?
资源分包完全没有任何意义,CDN就能解决的事,为什么要技术来解决。
配置1个以上子包的时候,从上往下,第一个不会警告,第二个开始就有会有Already has sub package ****, ignore sub package ****; 并且,构建速度和子包数量成反比,这个可以理解。
这个警告的意思是不是,只能配置一个子包?
大佬,给个答复啊,线上项目,继续分包加载。得搞清楚引擎的一些问题!
@BigBear 资源分包的意义在于你可以确保资源的完整性,你不需要去考虑资源是否加载了,我有个项目有大量的资源是放在resources里动态加载使用的,这些资源必须确保使用的时候的及时性以及确定性(确保存在),我用分包可以确保没有问题,如果用cdn,难道我要写代码在一开始的时候去挨个加载吗?我还要等所有的都加载完?而且都放在内存里?
此外,你说重度游戏代码量比较大,可是小游戏的重度游戏占比呢?
原本1.9的资源管理方式还可以手动资源分包,然而新版本呢?提了之后说会考虑,你们考虑的结果呢?
1.9的版本是可以分包的,只不过要根据微信的文档手动操作
根部不用考虑下载的问题,小游戏从一开始就设计了wxDownloader.REMOTE_SERVER_ROOT远程下载这个逻辑,Creator也配合它做了资源的远程下载。开发者根本无需在代码中去实现资源的下载。只需要把打包出来的res目录丢到CDN上即可。有必要去资源分包加载?
我觉得说需要资源分包加载的人压根就没读过game.js这个脚本吧
分包出来的脚本,没有加md5码,在线上版本更新后,会出现缓存的问题。
确实分包的脚本没有md5cache,但你说的更新缓存问题是什么?分包代码这一块你们也希望通过md5来判断是否需要进行更新下载么?
小游戏体验版
比如我的游戏现在版本是v1.0.0
安卓/苹果手机
1.我首先登陆小游戏,开启调试模式
2.此时我更新游戏版本到v1.0.1
3.然后我点小游戏右上角的圆点(切回微信聊天界面)
4.再进小游戏,此刻会重新加载小游戏
5.最后进游戏涉及到子包加载后,就会出现问题,一堆的errormap警告,意思就是所使用到的资源(prefab)与之对应的脚本失去了联系。
6.杀微信进程,重进小游戏就恢复正常了。
必现,所以不知道是哪一步出了问题
因为可以省钱~虽然我们现在游戏资源是放在CDN上,但是每个月成本还真不少
没想到cocos团队是这么想的
也要为小团队考虑一下啊, 能分包的资源为什么要用cdn啊,
cdn也是一比不小的开销, 能省则省啊
那也得微信小游戏先支持资源分包才行,小游戏根本就没考虑过资源分包加载
要不要资源分包,交给开发者自己决定呀。如果是比较难做就说比较难做,不要说一堆理由。
首先资源比较多的话是一定要用cdn的
其次 使用cdn并不需要更改任何代码,只需要在build之后更改main.js文件,把相对路径的res下面的地址指向改为cdn的地址即可
并不需要更改任何逻辑代码
所以资源分包是没有必要的。
如果不考虑cdn的话就直接把资源放到 服务器上,不会有开销
