Unity 6.3
0 онлайн 17 гостей 3 в системе
Вход

Понимание проблем производительности физики

Физическое моделирование работает на отдельном цикле обновления с фиксированной частотой от цикла обновления главной логики, и может только продвигать время через Time.fixedDeltaTime за вызов. Это похоже на разницу между Update и FixedUpdate. Для более подробной информации, см. документацию по Временному окну.

Когда тяжёлый логический или графический кадр занимает длительное время, Profiler вынужден вызывать физические симуляции несколько раз за кадр. Это означает, что и без того ресурсоемкий кадр занимает еще больше времени и ресурсов. Это может привести к временной остановке физических симуляций в соответствии со значением Maximum Allowed Timestep, которое можно установить в окне Настройки Project (меню: Edit > Project Settings > Time)

Чтобы обнаружить это в вашем проекте, выберите модуль CPU Использование Profiler и проверьте количество вызовов для Physics.Processing или Physics.Simulate в разделе Обзор в представлении Hierarchy.

CPU Использование Profiler со значением 2 в столбце Вызовы
CPU Использование Profiler со значением 2 в столбце Вызовы

На этом примере значение 2 в столбце Вызовы указывает, что физическое моделирование было вызванно дважды в течение последнего логического кадра.

Количество вызовов близко к 10 может указывать на проблему. В качестве первого решения, уменьшите частоту симулирования физики, и если проблема продолжается, проверьте, что могло вызвать тяжелый кадр до того, как система физики должна была использовать много вызовов симулирования, чтобы догнать игровое время. Иногда, тяжелый графический кадр может вызвать больше вызовов симулирования физики позже в сцене.

Для получения подробных сведений о физике симулирования в вашей сцене выберите поле поиска в верхней части панели сведений о модуле, найдите Physics.Processing, а затем выберите Звонки из раскрывающегося списка в правой верхней части панели. Таким образом будут отображены имена задач системы физики, выполняемых для обновления сцены, например следующие:

  • Pxs: PhysX Solver, которые являются физическими системными задачами, которые требуют соединений и разрешения контактов для перекрывающихся Rigidbody компонентов.
  • ScScene: Используется для задач, которые обновляют сцену, запускают широкую фазу и узкую фазу, и интегрируют Rigidbody компоненты (перемещая их в пространстве из-за сил и импульсов).

Дополнительные ресурсы