我正在使用 Unity 引擎。
有些播放器在视频驱动程序设置中关闭垂直同步。
这会导致 FPS 非常高并且显卡过热。
此代码不起作用:
QualitySettings.vSyncCount = 1;
Application.targetFrameRate = 60;
根据 Application.targetFrameRate 和 QualitySettings.vSyncCount 文档:
QualitySettings.vSyncCount = 1;
将帧速率与屏幕刷新率同步。如果视频驱动程序中的垂直同步被关闭,则此功能将不起作用。这里的另一个问题是当今许多屏幕都以 120Hz 或 144Hz 工作。
Application.targetFrameRate = 60;
设置 Unity 尝试渲染游戏的帧速率。所以这对你来说是正确的方法。但是,如果将
QualitySettings.vSyncCount
设置为 0 以外的任何值,则 Unity会忽略
Application.targetFrameRate
。移动平台是例外,其中 vSyncCount
根本没有任何效果,而 VR 平台则两个值均由 VR SDK 控制。
因此,您需要将 vSyncCount 设置为 0:
QualitySettings.vSyncCount = 0;
Application.targetFrameRate = 60;
另请注意,在编辑器中运行时,这可能不会产生预期的效果,请进行构建来测试它。