WaitForTargetFPS,是关于帧数限制的,你可能开了垂直同步,其实是防止撕裂。先说撕裂,在显示器的帧缓存会被不同步的显卡的帧缓存给替换掉,导致显示器显示到一半的时候,内存被换掉,你看到上频是上一针的画面,下频是下一针的画面,游戏刷新的频率越快,撕裂就越严重,所以就会撕裂了。开了垂直同步,是指将游戏帧数锁定到和你的显示器刷新频率一样的,因为显卡和显示器的刷新频率不一样。 简单的说,WaitForTargetFPS消耗越高,说明被压缩的帧数越多,能用的资源越多,等待的可用的进程越多。只要关闭垂直同步就可以了。比如说你项目能跑到60帧,但是你限定最高是30帧,那么他就会强制压到30帧,这中间可能会出现差值,所以需要等待。
减少FPS,在ProjectSetting-> Quality中的VSync Count 参数会影响你的FPS,EveryVBlank相当于FPS=60,EverySecondVBlank = 30;
3. 减少FPS,在ProjectSetting-> Quality中的VSync Count 参数会影响你的FPS,EveryVBlank相当于FPS=60,EverySecondVBlank = 30;
这两种情况都不符合游戏的FPS的话,我们需要手动调整FPS,首先关闭垂直同步这个功能,然后在代码的Awake方法里手动设置FPS(Application.targetFrameRate = 45;)
降低FPS的好处:
1)省电,减少手机发热的情况;
2)能都稳定游戏FPS,减少出现卡顿的情况。
4. 当我们设置了FPS后,再调整下Fixed timestep这个参数,这个参数在ProjectSetting->Time中,目的是减少物理计算的次数,来提高游戏性能。
5. 尽量少使用Update LateUpdate FixedUpdate,这样也可以提升性能和节省电量。多使用事件(不是SendMessage,使用自己写的,或者C#中的事件委托)。
6. 待机时,调整游戏的FPS为1,节省电量。