Всплески производительности Unity при 30 кадрах в секунду

Я разрабатываю простую игру для iOS с использованием движка Unity. Я использую Application.targetFrameRate для установки целевого fps для моей игры. Когда я устанавливаю целевое значение fps на 60 или 45, игра отлично работает на любом устройстве iOS, но если я устанавливаю targetFrameRate на 30, игра работает со скачками и дрожанием. Я не знаю, почему это происходит (30 кадров в секунду должно быть в порядке).

Я подключил Profiler к своему iPhone и увидел, что при работе со скоростью 30 кадров в секунду некоторые кадры рендерятся со скоростью 200 кадров в секунду, другие — со скоростью 45–60 кадров в секунду, что вызывает ужасные скачки производительности. Но этого не происходит, когда targetFrameRate равен 45 или 60.

Мне действительно нужно, чтобы моя игра работала со скоростью 30 кадров в секунду, чтобы избежать нагрева и дросселирования. Кто-нибудь, пожалуйста, помогите мне!


person Alexander Kucherenko    schedule 05.02.2019    source источник


Ответы (1)


Я предполагаю основную проблему здесь, но установка targetFrameRate дросселирует кадр с помощью логики ЦП, а установка QualitySettings.vSyncCount позволяет графическому процессору обрабатывать дросселирование. Я предполагаю, что настройка QualitySettings.vSyncCount = 2 должна обеспечивать более плавную работу. Вы также можете установить это вручную в настройках качества, а не с помощью кода.

person Martin Tilo Schmitz    schedule 05.02.2019
comment
Большое спасибо! Это помогло мне! Небольшие всплески еще есть, но действительно выглядит в несколько раз ровнее, чем было раньше - person Alexander Kucherenko; 05.02.2019