本人最近接触微信小游戏平台,对微信小游戏不太熟悉。
最近做项目遇到个问题:
安卓机运行起来FPS在正常范围波动50-60,而 iOS 则出现了各种情况。
cocos creator 3.8.0
测试环境:微信小游戏,iOS
朋友的 iPhone X 帧率很低,在20-30之间。Game Logic 和 Renderer 耗时很大,如下图:
我自己的 iPad 8 帧率在个8-20之间,Game Logic 和 Renderer 很大。如下图:
询问了一些高手后,得到建议是,开启微信高性能模式。
于是我在微信项目后台设置开启,CC打包时勾选“高性能模式”,再测试。
情况如下:
朋友的 iPhone X 帧率变得很不稳定。在20-60之间。
如果画面显示的是自己控制的3D角色在移动就稳定在60,如果画面显示了其他3D角色就会骤降到10-20。也就是说,看见了其他 NPC 就会巨卡,比之前没开高性能模式还卡。
询问另一个朋友,他的 iPhone 11。任何情况都 帧率正常。
问其,之前没有开高性能模式时,卡不卡。回答:不卡。这台iPhone11的运行截图如下:
这个 iPhone 11 之前没开高性能之前没截图,但是从他描述得知:不管开不开高性能,对于这个机器都是一样的。帧率都较高。
又询问一个朋友,iPhone 14 MAX。回答是,都不卡。
我自己的 IPad 8 情况则比较奇怪。变得不卡了,但FPS 30。
Game Logic 和 Renderer 很低,在个位数左右。打印 game.frameRate 的结果,显示为 60。运行起来感觉不卡,但是帧率不管怎么搞,在CC用代码控制或者用WX的API设置,都是打印显示为60,实际运行30。就像被锁定了帧数一样。折腾了一个晚上,无果,睡觉起来后,现在(早上7点)再运行,发现 ipad 8 帧率稳定在了60。微信开启高性能模式的部分效果不是立即生效而是还是有延迟的??
那么现在问题是:
iOS不同的设备,运行同样一份代码,得到的FPS,千奇百怪,各不相同。
iPhone X:不开高性能,很卡,开了后,时而正常,时而卡。
iPhone 11、iPhone 14 MAX:不管开不开都不卡。
iPad 8:不开高性能,很卡。开了后,感觉不到卡,只是最初FPS被锁定为30,一段时间后60。
对于 iOS 设备怎么做处理呢?
是什么特性导致iOS设备变卡的(通常是要么不卡,要么巨卡)?
微信的高性能模式是不是开启后有延迟?iPad 8 那种情况。(等那个iPhone X的主人起来后,我再问问他,现在还卡不卡)