3.7.0 微信小游戏加载首屏之前黑屏的最佳解决方案?

cocos自带的loading界面结束到首场景会有黑屏,尝试了去掉loading界面,首场景只加载一张图然后转到游戏场景,iPhone 13 Pro 打开还是会有好几秒的黑屏。。请问去掉这个黑屏的最佳解决方案?

4赞

同样子黑屏 以前的2.4.x的都不会 还有能不能把那个预留出来

1、首先得逐步确定从game.js执行到进入场景的onLoad之间都处理了什么逻辑
2、如果场景中挂载了大量prefab或图片等资源导致加载过慢可以考虑动态加载
3、如果是game.js到场景load之前,请检查引擎的初始化依赖项是否过多
4、最后,也可以考虑做个简单的loading界面来缓解黑屏等待的过程,给予玩家进度条反馈

你可能需要定制 引擎 在game.ts 的 _updateCallback() 在 director.startAnimation(); 之前加上这句, deviceManager.swapchain.initStates(); 然后再 Swapchain EmptySwapchain WebGLSwapchain WebGL2Swapchain 中 添加 initStates 函数, 最后将 以上文件中的 initialize函数中的initStates(gl) 注释掉。 以上纯个人测试发现。不确定有什么别的啥影响哈,慎用。

最后再说一句 在我的手机上 还是会有一帧的黑屏 暂没查出原因。

也遇到这个问题。现在logo loading结束(把logo渲染关掉了),再到app启动加载完成中间就一定会黑屏。黑屏时间和加载时间有关系,在电脑微信小游戏模拟器上测试,这个时间能有1秒左右,在真机可能有0.1-0.3秒,感觉很不爽。想尝试app启动加载完成后,再关闭logo渲染,然而并没有成功(logo首屏会花)。

尝试启动完成,再关闭logo屏幕,失败,logo屏幕会花掉

  • 模拟器测试尺寸异常变化
  • 真机上背景直接会花掉

在微信小游戏game.js里 写段shader,可以改成蓝屏 红屏 绿屏 白屏。。。。

感谢,也有点尴尬。。。

不就是官方这套方案吗?就是这个有一帧黑屏

1赞

首次启动的过程应该还有从网络下载bundle的时间,ios真机上能有1秒时间。二次启动很快,可能就是几帧时间

application.start的回调就已经渲染了首页,所有有点问题,我也在找各种时机,但是没有好的地方

都知行了game.js,理论上包已经下载完了,主包下载完了,分包只要你不加载,应该不会下载吧

感谢,应该是这个问题。我把resources点了子包。实际上resources资源是loading的时候才加载,我就以为首屏只用加载main包,刚刚看bundle优先级,resources比main还高,应该是黑屏时间在加载resources,尴尬

这个,倒是疏忽了,我也边看看

检查构建后的文件,能看到

勾选首场景分包是不是好点,我看首场景分包的优先级是最高的

换了种方式把 resources 目录改成了 enter,作为一个普通的 bundle(反正都是动态加载的),就会像你说的只需要一个main包,感谢了~

改首场景分包,preadload bundles 还多了一个 start-scene,不适合这个场景

3.7.2 微信首屏渲染到进入Cocos 场景,有一帧黑屏,3.5.1 没有这个问题。

@jare 黑屏问题求关注。如果感觉不明显的话,把first-screen的首屏改成白色底,就很容易看出来,眨眼一闪

1赞