问题
您可能会注意到以下现象:
- 您的游戏运行在60帧(FPS)或以上时,突然遇到数帧有明显卡顿延迟感,致使帧率降至30。
- 使用Profiling工具分析低FPS采样帧时,发现WaitForPresent或Overhead莫名占用过多处理时间。
- 如果您使用自己编写的帧率计算方法,您会发现某些帧的帧率会大幅下降,或平均保持在45帧。
原因
简短地说,在iOS与Android平台上,您只能让程序运行在60帧、30帧以及30帧以下。因为在移动平台上,系统为渲染强制启用垂直同步(Vertical Synchronization)。
专业解释如下:iOS和Android设备的最高屏幕刷新率(Update Frequency)是60Hz(60FPS),即画面的每秒渲染速率不会超过60帧。与其他平台不同,您无法解除这个限制,这样做能保证您程序的运行效率。
解决方案
有以下两种办法:
1.优化您的游戏,使运行速率高于(或等于)60帧。
2.限制画面帧率30帧,向Application.targetFrameRate赋值30即可。