Получить данные о времени кадра
Вы можете получить данные о времени кадра из FrameTiming API следующими способами:
Чтобы получить данные о времени кадров из сборок выпуска, сначала необходимо включить свойство Frame Timing Stats.
Используйте пользовательский модуль Profiler
Для просмотра данных о времени кадра в пользовательском модуле Profiler выполните следующие действия:
- Создайте пользовательский модуль профилирования в соответствии с инструкциями в Создание пользовательского модуля профилирования.
- Откройте Profiler окно (Окно > Анализ > Profiler)
- Откройте редактор модулей Profiler (Profler Modules dropdown > зубчатое колесо) и выберите свой модуль Profiler.
- В панели Доступные счетчики выберите Unity.
- Выберите Render, чтобы открыть подменю, содержащее счетчики Profiler, связанные с использованием памяти, включая те, которые включены свойством
FrameTimingStats. Затем вы можете щелкнуть по соответствующим счетчикам в подменю, чтобы добавить их в свой пользовательский модуль.
Список доступных счетчиков см. в Profiler счетчики ссылка.
Модуль Highlights Profiler использует FrameTiming для определения того, связан ли кадр CPU или GPU.
Используйте FrameTiming API
Используйте FrameTiming API для доступа к информации о времени. В каждой переменной FrameTimingManager записывает время, когда произошло определенное событие в течение кадра.
Следующая таблица содержит значения, доступные через API, в порядке, в котором Unity выполняет их во время кадра:
| Свойство | Описание |
|---|---|
frameStartTimestamp |
Время CPU, когда кадр начинается. |
firstSubmitTimestamp |
Время CPU, когда Unity отправляет первое задание на GPU в течение этого кадра. |
cpuTimePresentCalled |
CPU timestamp время, когда Unity вызывает функцию Present() для текущего кадра. |
cpuTimeFrameComplete |
Время CPU, когда GPU завершает рендеринг кадра и прерывает CPU. |
Используйте FrameTimingManager.GetCpuTimerFrequency API для преобразования метки времени в секунды.