提一些预加载Bundle的建议

cc.assetManager.preloadAny这个接口提供了设置为远程Bundle的预加载功能,能够提前下载到本地,但是有些信息获取不到,比如,游戏里需要实现某些资源不需要放到首包apk里,需要到游戏里再下载,如果还没下载好就用到了,也需要实现边玩边下,这个时候就可以把这些资源放到一个Bundle里,并且设置为远程包,但是我们预下载的时候,界面需要显示整个包需要下载的大小(MB),以及当前下载了多少,网速多少,进度百分比之类的,这些信息都获取不到,只能知道下载了多少个资源,总共需要下载多少资源这些信息,引擎代码如图:

,所以希望引擎团队能够优化一下,能不能获取到整个Bundle需要下载的大小(MB),进度中能得知当前下载了多少?

1赞

补充一下,在onProgress的回调中,需要下载的总资源数,还有可能中途变大,这就很尴尬,进度条本来50%会突然变成30%,往回倒,引擎代码如图:

自顶自顶自顶自顶

提建议没啥用 我都有好多建议要提 后来想想算了 以前提的建议都石沉大海了 根本没人理你

:joy: :joy: :joy: :joy:害,试试吧,万一被采纳了呢

还有一个问题,资源服务器地址只能在构建的时候写死,并不能通过代码动态设置改变,这样要改变地址的时候还得重新构建!
image

@jare

每天自顶自顶自顶自顶

自顶自顶自顶自顶

这个资源服务器地址,我记得在构建后的代码中可以临时改一下

这个问题自己处理下就好,假如下次的进度条数值小于上一次的,就不更新进度条的数据,这样进度条就不会往回倒了

我想要的是游戏启动后,根据后台服务器下发的地址动态设置。。。不是写死在代码中。。。

这样进度条就会一直卡在那个进度一段时间了。。。。

这不是很正常吗。。加载到大的文件也会卡住啊,总比你进度条往回倒好吧

这是小问题,重要的是要显示总共需要下载多少MB,当前下载了多少MB

自顶自顶自顶自顶

修改构建模板即可解决

虽然可以,不过得修改mian.js,在里面发起http请求,返回结果再设置,然后才能走后面的逻辑,这样会导致启动速度不稳定,和网络状态好坏有关,这种方案不太好,还是进入游戏后可以随时动态设置比较好

进入游戏后动态设置我是否可以理解为直接通过自定义cdn的url进行load,现在的loader支持这个。另外,你说的会导致启动速度不稳定,前面如果不下载怎么会影响呢?还是说你的需求就是修改这个remoteUrl,我想应该也不会出现资源放在两个cdn地址上进行动态修改,更不会出现需要有修改remoteUrl的必要。另外remoteUrl下载的方式你可以看下源码,是在包内找不到资源的时候才会使用,既然游戏内动态remoteUrl变更,那么你肯定是把前置资源放在包内的,这样一开始设置remoteUrl就不存在问题

会有的,比如我的游戏找了两家发行公司合作,公司A提供了cdn服务器A,公司B提供了cdn服务器B,两家公司要求用自家提供的cdn服务器,那我的资源就会放在两个cdn服务器上,虽然都是一样的,但是我游戏内容都是一样的,只是不同的渠道,要去不同的cdn下载资源,这就需要动态设置了,不可能我每次打包都要构建两次,还要两个渠道用不同的热更包吧?