指定 Unity 尝试渲染游戏的目标帧率。
一个大于 0 的整数,或特殊值 -1(默认值)。
桌面和网页:如果 QualitySettings.vSyncCount 设置为 0,则 Application.targetFrameRate
会为游戏选择目标帧率。如果 vSyncCount != 0
,则忽略 targetFrameRate
。
Android 和 iOS:移动平台始终忽略 QualitySettings.vSyncCount,而是使用 Application.targetFrameRate
为游戏选择目标帧率。使用 targetFrameRate
控制游戏的帧率。这对于限制游戏的帧率很有用,可以确保游戏在繁重的渲染工作负载下流畅且稳定地显示。您还可以降低游戏的帧率以节省电池电量并在移动设备上避免过热。
当 QualitySettings.vSyncCount = 0
且 Application.targetFrameRate = -1
时
- 桌面:内容以尽可能快的速度异步渲染。
- 网页:内容以原生显示器刷新率渲染。
- Android 和 iOS:内容以固定 30 fps 渲染以节省电量,与显示器的原生刷新率无关。
桌面和网页:建议使用 QualitySettings.vSyncCount
而不是 Application.targetFrameRate
,因为 vSyncCount
实现了一种基于硬件的同步机制,而 targetFrameRate
是一种基于软件的定时方法,容易出现微卡顿。换句话说,在桌面和网页平台上,设置 vSyncCount = 0
并使用 targetFrameRate
不会产生完全无卡顿的输出。当需要平滑的帧速率时,始终使用 vSyncCount > 0
。
网页、Android 和 iOS:渲染始终受显示器最大刷新率的限制。将 vSyncCount
设置为 0 并将 targetFrameRate
设置为任意高值都不会超过显示器的原生刷新率,即使渲染工作负载足够低。
Android 和 iOS:要在显示器的原生刷新率下渲染,请将 Application.targetFrameRate
设置为 Resolution.refreshRateRatio 字段(位于 Screen.currentResolution 属性中)的值。
iOS:显示器的原生刷新率由 Apple 的ProMotion功能控制。当项目中禁用 ProMotion(新项目的默认设置)时,原生刷新率为 60 Hz。启用 ProMotion 时,支持 ProMotion 的 iOS 显示器的原生刷新率为 120 Hz,否则为 60 Hz。
Android 和 iOS:如果指定的速率不能均匀地划分显示器的当前刷新率,则 Application.targetFrameRate
的值将向下舍入到最接近的可以均匀划分的数字。例如,在 60Hz 的 Android 显示器上运行时,如果 Application.targetFrameRate = 25
,则内容实际上以 20fps 渲染,因为 20 是低于 25 且可以均匀划分 60 的最大数字。
VR 平台
VR 平台会忽略 QualitySettings.vSyncCount 和 Application.targetFrameRate
,而是由 VR SDK 控制帧率。
Unity 编辑器
在编辑器中,Application.targetFrameRate
仅影响游戏视图。它对其他编辑器窗口没有影响。
其他资源:QualitySettings.vSyncCount、Screen.currentResolution。
using UnityEngine;
public class Example { void Start() { // Limit framerate to cinematic 24fps. QualitySettings.vSyncCount = 0; // Set vSyncCount to 0 so that using .targetFrameRate is enabled. Application.targetFrameRate = 24; } }