Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Физика Шаг 80 из 99

Оптимизация физики для игр, требующих только запросов или не симулирующих

Предотвратите запуск цикла обновления физики по умолчанию, чтобы уменьшить ненужную нагрузку на производительность, изменив Режим симулирования на Сценарий.

Предотвращение запуска цикла обновления физики по умолчанию может быть полезным, если ваша игра не требует симуляцию физики для сцены физики по умолчанию. Например, ваша игра может требовать только физические запросы, такие как raycasts, spherecasts или проверки накладок, но не Rigidbody компоненты с силами, гравитацией или движением, управляемым физикой.

Этот подход использует физические запросы для обнаружения столкновений или взаимодействия с окружающей средой без затрат на производительность полного физического моделирования и сохраняет контроль над синхронизацией данных преобразования.

Обратите внимание на следующее, если вы установите Режим Симулирования сцены по умолчанию на Сценарий:

  • Физико-математические запросы по-прежнему функционируют, проверяя их на соответствие представлению коллайдеров в физике.
  • Если у вас есть объекты в вашей сцене, которые перемещаются путем непосредственного манипулирования их Transform компоненты, их положение во внутренних пространственных структурах физического движка не обновляется автоматически в соответствии с их Transform позиции кадр за кадром (поскольку по умолчанию в этом режиме не происходит никаких шагов симулирования).
  • Чтобы гарантировать точность лучевой трансляции и других запросов на эти коллайдеры, предположив, что Physics.autoSyncTransforms является false (настройка по умолчанию и рекомендуемая), вы должны вручную вызвать Physics.SyncTransforms один раз за кадр перед выполнением запросов. Эта функция явно обновляет физическую систему текущим состоянием всех преобразований GameObject, у которых есть коллайдеры.
  • Если Physics.autoSyncTransforms установлен на true, то эта синхронизация происходит имплицитно перед каждым запросом, но это, как правило, не рекомендуется из-за потенциальной накладной синхронизации перед каждым запросом. Обратите внимание, что Physics.autoSyncTransforms устарел. Чтобы узнать, как синхронизировать преобразования, см. Оптимизация синхронизации значений преобразований.
  • Без явного вызова Physics.SyncTransforms (когда autoSyncTransforms является false), запросы могут использовать устаревшие позиции объектов и приводить к неправильным результатам.

Чтобы предотвратить выполнение обновления физики по умолчанию в редакторе:

  1. Выберите Изменить > Project Настройки, чтобы открыть окно Настройки Project.
  2. Выберите вкладку Physics > Settings.
  3. Выберите вкладку GameObject.
  4. Установите Режим симулирования на Сценарий.

Чтобы отключить автоматическое моделирование в скрипте, установите Physics.simulationMode = SimulationMode.Script; во время выполнения.

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