如题:Creator升级到2.2.1后碰到一个问题,不论调用cc.director.loadScene((‘Game’
还是调用 cc.director.preloadScene(‘Game’, 都无法正常完成,感觉像是在哪进入了死循环,从这个看像是Game场景有问题,但无从知道问题在哪,有没有好的办法可以跟踪这个问题,比如:场景深度太深、prefab太多、场景太大了。。。
最后附上两个出问题的地方图
什么平台?
安卓平台居多
安卓原生么?是否有可以复现问题的demo?
不是DEMO,也无法做到必现,是我们正常更新的版本,之前是2.0.5正常升级到2.2.1的时候出的这个问题。
此问题出现后,杀下进程,然后再重新进又会正常。
cc.director.preloadScene/cc.director.loadScene 除了加载资源外还会执行期它的什么吗?理论上应该不会执行内部挂载的脚本的吧!
loadscene相当于加载资源后执行runSceneImmediate
preloadScene就只是加载资源
从这个结论上可以推断出,基本上加载资源出的问题。那么问题来了,什么情况下会导致此函数无响应。
我这边有几个特点:
1、game场景差不多有2M [有没有此限制]
2、Node的层级有最多6层 [以前听说层级不能太多]
3、预制体也比较多 [我的理解是没关系,又不会真正加载]
因为另一个只有600K的场景从没有出过问题
我和你一样的问题:微信的模拟器正常,微信偶现没有正常进入,杀进程后重进就OK,一般不是第一个场景,通常出现在第二和第三个场景,我怀疑是大量的加载导致超时然后就出错了。—— 这还提醒我了:我去拆分下可能超时的处理,估计会有所优化(降低出现的概率)。
我也遇到此问题了,请问解决了吗?怎么解决的呢
我们已经定位到出问题的预制体,看起来是这个预制体加载太多的东西了,导致加载不上来,既有音频也有文字。
定位方法也是笨方法,但很有效。
- 通过日志定位到出问题的场景
- 使用二分法,一半对一半删除场景里边的资源,此时会报错,但是不要管,只管打包,看是否能加载成功。
假如:A 场景分成 B,C两半,先保留B,如果能正常加载,说明问题出在C的部分,保留C,删除B,然后把C拆分,以此类推。 - 通过多次打包,基本可以定位到一个Node上,然后就是改造这个Node。
同样的问题,加载场景时,preloadScene加载到99%左右就卡住了,也没有报错。正在一步一步查看是哪里加载失败。


