Application.targetFrameRate
Declaration
public static int targetFrameRate;Описание
Указывает целевую частоту кадров, с которой Unity пытается отобразить ваше приложение.
Принимает целое число > 0 или специальное значение -1 (по умолчанию).
Настольный компьютер
- Если QualitySettings.vSyncCount установлены на
0, тоApplication.targetFrameRateвыбирает целевую частоту кадров для приложения. ЕслиvSyncCount != 0, тоtargetFrameRateигнорируется. - Когда
QualitySettings.vSyncCount = 0иApplication.targetFrameRate = -1, содержимое отображается несинхронизированным как можно быстрее. - Рекомендуется использовать
QualitySettings.vSyncCountвместоApplication.targetFrameRate, потому чтоvSyncCountреализует аппаратный механизм синхронизации, в то время какtargetFrameRateявляется программным методом синхронизации и подвержен микрозадержкам. - Установка
vSyncCount = 0и использованиеtargetFrameRateне приведет к полностью беззамедлительному выходу. Всегда используйтеvSyncCount > 0, когда требуется плавное увеличение частоты кадров.
Веб
- Если QualitySettings.vSyncCount установлены на
0, тоApplication.targetFrameRateвыбирает целевую частоту кадров для приложения. ЕслиvSyncCount != 0, тоtargetFrameRateигнорируется. - Когда
QualitySettings.vSyncCount = 0иApplication.targetFrameRate = -1, содержимое отображается с частотой обновления собственного экрана. - Рекомендуется использовать QualitySettings.vSyncCount вместо
Application.targetFrameRate, потому чтоvSyncCountреализует аппаратный механизм синхронизации, в то время какtargetFrameRateявляется программным методом синхронизации и подвержен микрозадержкам. - Установка
vSyncCount = 0и использованиеtargetFrameRateне приведет к полностью беззамедлительному выходу. Всегда используйтеvSyncCount > 0, когда требуется плавное увеличение частоты кадров. - Отображение всегда ограничивается максимальной частотой обновления дисплея. Установка
vSyncCount = 0иtargetFrameRateна произвольно высокое значение не превысит естественную частоту обновления дисплея, даже если нагрузка на отображение достаточно низка.
Android
- Используйте
targetFrameRateдля управления частотой кадров приложения. Это полезно для ограничения частоты кадров приложения, чтобы убедиться, что приложение отображается плавно и последовательно при больших нагрузках на рендеринг. Вы можете уменьшить частоту кадров приложения, чтобы сохранить время работы батареи и избежать перегрева мобильных устройств. - Когда
QualitySettings.vSyncCount = 0иApplication.targetFrameRate = -1, контент отображается с фиксированной частотой 30 кадров в секунду для экономии батареи, независимо от частоты обновления дисплея.QualitySettings.vSyncCount > 0игнорируется. - Отображение всегда ограничивается максимальной частотой обновления дисплея. Установка
vSyncCount = 0иtargetFrameRateна произвольно высокое значение не превысит естественную частоту обновления дисплея, даже если нагрузка на отображение достаточно низка. - Чтобы отображать изображение с естественной частотой обновления дисплея, установите
Application.targetFrameRateна значение из поля Resolution.refreshRateRatio свойства Screen.currentResolution. - Если указанная частота не делит равномерно текущую частоту обновления дисплея, то значение
Application.targetFrameRateокругляется до ближайшего числа, которое делит равномерно текущую частоту обновления дисплея. Например, при запуске на 60 Гц дисплее Android иApplication.targetFrameRate = 25контент отображается с частотой 20 кадров в секунду, так как 20 является наибольшим числом ниже 25, которое делит равномерно 60.
iOS
- Используйте
targetFrameRateдля управления частотой кадров приложения. Это полезно для ограничения частоты кадров приложения, чтобы убедиться, что приложение отображается плавно и последовательно при больших нагрузках на рендеринг. Вы также можете уменьшить частоту кадров приложения, чтобы сохранить время работы батареи и избежать перегрева на мобильных устройствах. - Когда
QualitySettings.vSyncCount = 0иApplication.targetFrameRate = -1, контент отображается с фиксированной частотой 30 кадров в секунду для экономии батареи, независимо от частоты обновления дисплея.QualitySettings.vSyncCount > 0игнорируется. - Отображение всегда ограничивается максимальной частотой обновления дисплея. Установка
vSyncCount = 0иtargetFrameRateна произвольно высокое значение не превысит естественную частоту обновления дисплея, даже если нагрузка на отображение достаточно низка. - Чтобы отображать изображение с естественной частотой обновления экрана, установите
Application.targetFrameRateв качестве целочисленного представления частоты обновления экрана. Это можно получить из значения свойстваScreen.currentResolution.refreshRateRatio. Например,Application.targetFrameRate = (int)Screen.currentResolution.refreshRateRatio.value;. - Нативная частота обновления дисплея контролируется функцией Apple ProMotion. Когда ProMotion отключена в проекте (по умолчанию для новых проектов), нативная частота обновления составляет 60 Гц. Когда ProMotion включена, нативная частота обновления составляет 120 Гц на iOS дисплеях, поддерживающих ProMotion, 60 Гц в противном случае.
- Если указанная частота не равномерно делит текущую частоту обновления дисплея, то значение
Application.targetFrameRateокругляется до ближайшего числа, которое это делает.
XR платформы
XR платформы игнорируют QualitySettings.vSyncCount и Application.targetFrameRate. Вместо этого XR SDK управляет частотой кадров.
Unity Editor
В Редакторе Application.targetFrameRate влияет только на представление Game. Оно не влияет на другие окна Редактора.
Дополнительные ресурсы: QualitySettings.vSyncCount, Screen.currentResolution.
using UnityEngine;
public class Example : MonoBehaviour { void Start() { // Limit framerate to cinematic 24fps. QualitySettings.vSyncCount = 0; // Set vSyncCount to 0 so that using .targetFrameRate is enabled. Application.targetFrameRate = 24; } }