版本: Unity 6 (6000.0)
语言英语
  • C#

QualitySettings.vSyncCount

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册
public static int vSyncCount;

描述

表示每个帧之间应经过的垂直同步次数。

范围为 0-4 的整数。默认情况下,设置为 1。

桌面和网页

vSyncCount 指定游戏允许在帧之间经过的屏幕刷新次数。在 Unity 编辑器中,这对应于**项目设置 > 质量 > 其他**下的**垂直同步次数**属性。

- 如果 vSyncCount > 0,则字段 Application.targetFrameRate 将被忽略,有效帧率为显示器的原生刷新率除以 vSyncCount。如果 vSyncCount == 1,则渲染与显示器的垂直刷新率同步。

- 如果 vSyncCount 设置为 0,则 Unity 不会将渲染与垂直同步同步,而是使用字段 Application.targetFrameRate 来控制渲染帧。

例如,如果您在 60 Hz 显示器上运行编辑器,并且 vSyncCount == 2,则目标帧率为每秒 30 帧。

Android 和 iOS:始终忽略 vSyncCount 字段,因为移动设备不允许非同步渲染。请改用 Application.targetFrameRate 字段来控制帧率。

VR 平台:同时忽略 vSyncCountApplication.targetFrameRate。取而代之的是,VR SDK 控制帧率。

注意:您可以在 Resolution.refreshRateRatio(位于 Screen.currentResolution 属性中)中查询大多数平台的屏幕刷新率。

显示器原生刷新率变化

虽然历史上显示器的原生刷新率通常保持固定,但如今新一代移动设备、笔记本电脑和台式机可以影响显示器的原生刷新率,使其在运行时动态变化。例如

  • 桌面:当用户将游戏窗口从主显示器拖动到辅助显示器,或在游戏运行时更改显示属性中的显示器刷新率时,原生显示器刷新率可能会动态更改。
  • 笔记本电脑:例如,具有高刷新率显示屏的游戏笔记本电脑在连接到墙壁充电器时可能仅以 144 Hz 运行。断开连接后,显示屏将限制为 60 Hz。
  • 移动设备:当手机电池正在充电时,手机可能会将显示屏刷新率限制为 60 Hz,以限制并防止由于电池同时充电产生的热量累积导致过热。
  • 网页:根据用户正在浏览的设备类型,可能会发生上述任何情况。

因此,建议不要在游戏逻辑中的任何位置硬编码,并假设在游戏启动时看到的显示器刷新率将在应用程序的整个生命周期中保持不变。

其他资源:Application.targetFrameRate

using UnityEngine;

public class Example : MonoBehaviour { void Start() { // Render at half the refresh rate of the display (Desktop and Web platforms) QualitySettings.vSyncCount = 2; } }

其他资源:质量设置