cc.director.preloadScene到底干了啥?

问下引擎组,preloadScene加载的是新场景的所有依赖资源吗?比如,新场景有A和B两个sprite节点,对应图片是spriteA,spriteB,其中B结节active=false,问题来了,preloadScene时只加载spriteA还是spriteB也一起加载了?另外,像上面的场景,如果只是loadScene的话,是只加载spriteA还是spriteB也一起加载?因为在优化场景切换速度,想了解下这方面的加载原理

你要是 钩了 延时加载。 就会在真正显示的时候才加载。 否则直接全部加载。应该是这样的

都加载了

都加载了


preload 本质上和 load 一样的,只是最后一步没有执行场景切换罢了

1赞

以下不知道我理解的对不对,望指正:
1,preloadScene时新场景的onLoad不会被执行吧,只有loadScene时新场景的onLoad才会执行,对吧?
2,如果新场景上关联了一个prefab,那个这个prefab的图片资源也应该会自动先加载吗,如果在新场景onLoad里使用cc.loader.loadRes(url,cc.Prefab,…)这种方式的话,这个prefab的图片资源应该是后加载的吧
还有,“延时加载”具体是什么原理呢?

是的

是的

是的

仅仅是将贴图之类的资源放到 onLoad 时才下载,这样就缩短了场景切换时间。

1赞

loadscen时,如果场景比较大。一些性能不太好的机子会要不少时间。(已经preloadScene过了,只是执行场景切换罢)。实际表现就是加载进度100了,还要等好久才能进场景
能不能再处理一下:让体验更好

这个没办法,场景太大的话初始化就是要这么久

把场景初始化,也算到进度里,可行吗?

这个是同步操作,没办法算到进度里。

现在发现preloadScene耗时超长,竟然不是异步的?,几百ms,体验好差,有办法优化吗?

难怪我由初始场景加载到下个场景,
用了preloadScene
使用cc.loader.onProgress = function(completedCount, totalCount, item) {显示进度
结果是进度条直接卡死了3-4s然后直接切换场景,原来是同步卡死了
请问现在有什么解决办法么,第一个场景是大厅,节点比较多,但让用户等3-5秒卡死状态,这完全没法使用了
使用引擎版本是1.5.2

preload的时候显示一个loading界面,收到load成功的回调再去loadScene呗

时间太长,有loading界面,不过就像上面说的卡在100%要好几秒才能进,千元机直接要7-10秒,应用类3秒是极限了。。。

mark mark