QualitySettings.vSyncCount
Declaration
public static int vSyncCount;Описание
Представляет количество вертикальных синхронизаций, которые должны проходить между каждым кадром.
Целое число в диапазоне 0–4. Значение по умолчанию — 1.
Настольные платформы и вебvSyncCount задаёт количество обновлений экрана, которые игра пропускает между кадрами. В Unity Editor этому соответствует свойство VSync Количество в разделе Project Settings > Quality > Other.
- Если vSyncCount > 0, поле Application.targetFrameRate игнорируется, а фактическая частота кадров равна собственной частоте обновления дисплея, делённой на vSyncCount. Если vSyncCount == 1, отрисовка синхронизируется с вертикальной частотой обновления дисплея.
- Если vSyncCount имеет значение 0, Unity не синхронизирует отрисовку с вертикальной развёрткой, а для регулирования частоты отрисовки кадров используется поле Application.targetFrameRate.
Например, если Редактор работает на дисплее с частотой 60 Гц и vSyncCount == 2, целевая частота составляет 30 кадров в секунду.
Android и iOS: поле vSyncCount всегда игнорируется, поскольку мобильные устройства не допускают несинхронизированную отрисовку. Для управления частотой кадров используйте вместо него поле Application.targetFrameRate.
Платформы VR: игнорируются и vSyncCount, и Application.targetFrameRate. Частотой кадров управляет VR SDK.
Примечание: на большинстве платформ частоту обновления экрана можно получить через Resolution.refreshRateRatio в свойстве Screen.currentResolution.
Изменяющаяся собственная частота обновления дисплея
Раньше собственная частота обновления дисплеев обычно оставалась постоянной. Современные мобильные устройства, ноутбуки и настольные компьютеры способны динамически изменять её во время выполнения. Например:
- Настольный компьютер: Когда пользователь перетаскивает игровое окно с основного монитора на второй монитор, или изменяет частоту обновления монитора в Display Properties во время запуска игры, частота обновления собственного дисплея может измениться в режиме реального времени.
- Ноутбуки: Игровой ноутбук с высоким частотой обновления экрана может работать только на 144 Гц, например, когда ноутбук питается от зарядного устройства. При отключении от сети частота экрана падает до 60 Гц.
- Мобильные: Мобильный телефон может ограничить частоту обновления экрана до 60 Гц при зарядке аккумулятора мобильного телефона, чтобы ограничить и предотвратить перегрев из-за одновременного накопления тепла от зарядки аккумулятора.
- Веб: В зависимости от устройства, на котором пользователь просматривает веб-страницу, может возникнуть любое из вышеуказанных условий.
Поэтому рекомендуется не устанавливать жесткое кодирование ни в одном месте игровой логики, исходя из предположения, что частота обновления экрана, видимая при запуске игры, будет сохраняться на протяжении всего срока жизни приложения.
Дополнительные ресурсы: 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; } }
Дополнительные ресурсы: Настройки качества.