Browser Timings
Эта страница описывает технические ограничения архитектуры WebGL, связанные с параметром Application.targetFrameRate.
При компиляции Unity-проекта под WebGL, параметр Application.targetFrameRate меняет не просто внутренний лимит кадров движка, а базовый API браузера, через который работает игровой цикл (Main Loop).
Без ограничений (requestAnimationFrame)
Если вы снимаете лимит кадров (устанавливаете Application.targetFrameRate в -1 или 0, в зависимости от версии Unity), сборщик Emscripten привязывает главный цикл Unity напрямую к браузерному API window.requestAnimationFrame.
- Плюсы: Это нативный, самый плавный и правильный способ рендеринга в вебе. Браузер сам синхронизирует вызовы с частотой обновления монитора игрока (VSync).
- Профилирование: Метрика
cpuMainThreadFrameTime(которую читает WebAP) отражает реальное время, затраченное процессором на расчеты физики и скриптов.
Искусственный лимит (setTimeout)
Если вы жестко фиксируете частоту кадров (например, Application.targetFrameRate = 30), Emscripten вынужден отказаться от requestAnimationFrame. Вместо этого он использует API setTimeout() или сложную комбинацию внутренних таймеров для искусственного замедления цикла.
Искажение метрик CPU (The Emscripten Trap)
Искусственный таймер создает серьезное расхождение при измерении времени CPU. Процессор может просчитать всю игровую логику за 5 мс и уйти в простой, но корутина WaitForEndOfFrame не возобновится, пока не истечет таймер setTimeout.
В результате: FrameTimingManager запишет это время ожидания в тайминг CPU. Профайлер (и трекер WebAP) будет считать, что у вас CPU Bottleneck, хотя на самом деле процессор функционально свободен, а кадр просто ждет таймера браузера.
Как правильно настроить?
Для идеальной работы Web Adaptive Performance в браузере:
- Не используйте
Application.targetFrameRate. Оставьте его равным-1(снято). - Укажите желаемый FPS в настройках самого плагина (
Target Min FPS = 60). WebAP будет использовать это значение не как хард-лимит, а как якорь для принятия решений о качестве графики.
