就是现在没有直接的api,加载场景也是加载资源,你可以试试cc.loader.onProgress
还有就是你可以试试这个搜索
我试过了onprogress获取的是资源的进度,如果我onload的东西多了在进度条100的时候会卡很久,等onload加载完成再进场景,
求关注
任然在等待
等待中
很多人都根本不懂自己在问什么~~ 真实进度是什么概念? 就是已经确定了在哪个时间点会完成,在那个时间点之前的某个时间点相对于开始时间的一个进度。。。。 那么请问,既然你都知道了哪个时间点会完成,你怎么不会算进度呢?
当然,你是不可能知道会在哪个时间点加载完成的~ 伪命题~ 仔细理解下上边热心观众的回复吧。。。
比如你综合一下他们的解决方案,设置一个进度条,由资源加载和预计代码执行时间共同参与的。
然后,根据现有的资源加载api计算出进度条前半部分的走势。
最后,评估下你代码的走势,时间匀速(获取贝塞尔曲线也随你心情)步进就好了~
无知还不用心最可怕~
我发现研究一下午无解的问题,从一个场景加载到另外一个场景,如果新场景的onload执行的东西太多肯定会卡一下的。
完蛋,,你这项目卡在这卡死了。。
应该在onload里找优化
我还是想知道如果onload里的东西多了 在加载场景前会卡一下 这个改怎么解决
这是有多少东西啊?一般在进入A场景后,就开始预加载B场景了,打开B的时候就秒开了,再不行就设置B场景延迟加载资源。如果你的游戏是那种实时多人同屏战斗,很多网络请求同步啥的,那就弄个过渡场景(类似于王者荣耀选好人物战斗准备阶段)
如果下一个场景onload里有prefrab,需要很久才能生成界面,要卡很久,有优化方案吗
如果新场景中包括「场景资源」和「预加载资源」
简单做法:可以划分一个比例进行模拟加载,比如 1 个场景占 50%,剩下的资源占 50%,具体每个资源占多少可以通过除以所有资源数量可得。
详细做法:计算每个资源的大小,生成资源配置文件,根据已加载的资源大小及总资源大小,计算当前加载进度。
请问有人知道以下问题怎么解决吗?关于微信小游戏的。
ios系统在loading页面预加载资源的时候切换微信小游戏至后台,再返回的时候跳转至其他场景页面渲染是资源不全的,但是加载资源的回调里可以看出资源已经全部加载成功了,且切回来用了onShow监听,回调里用过cc.game.resume,用过preloadScene,都没有用,请问有什么好的处理方法吗?
谢谢。
不要在onLoad里进行io的同步操作(jsb.fileUtils的文件读写). 内存操作可以理解为不会卡顿, 你看得到的卡顿都是io引起的(内存垃圾回收也会卡顿)
onload里东西再多也应该是感受不到的,除非卡io,那么问题来了,io的东西为什么不用异步呢?
loadingFun(sceneName, callback) {
let info = cc.director._getSceneUuid(sceneName);
if (info) {
cc.director.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, sceneName);
cc.loader.load({
uuid: info.uuid,
type: 'uuid'
},
(completedCount, totalCount, item) => {
console.log(completedCount + '/' + totalCount);//进度
},
() => {
if (this._completedCount >= this._totalCount && this._completedCount > 0) {
callback();//回调
}
}
)
}
},
可以参考下
是啊啊
用了下这个代码 发现进入不了回调