PhysicsJobOptions2D
структура в UnityEngine
Выполнено в:UnityEngine.Physics2DModule
Описание
Набор параметров, которые управляют работой физики при использовании системы заданий для многопоточной физики моделирования.
Многопоточная физика в настоящее время является экспериментальной функцией. Таким образом, многие параметры доступны, что позволяет настройку производительности, которая может быть недоступна, когда функция выходит из экспериментального состояния.
Физическая симуляция выполняется в следующих дискретных стадиях:
• Поиск новых контактов
• Столкновение контактов
• Дискретный решатель (Очистить флаги острова -> Дискретное пересечение острова -> Дискретный решатель острова -> Синхронизировать приспособления -> Поиск новых контактов)
• Непрерывный решатель (Очистить флаги острова > Непрерывное пересечение острова -> Дискретный решатель острова -> Синхронизировать приспособления -> Поиск новых контактов)
• Очистить силы тела
• Обновить контакты триггера
Эти стадии выполняются в порядке, указанном выше. Каждая стадия запускается как задание "задача". Каждое задание выполняет подзадачи, которые показаны в скобках выше. При выполнении задания, физика симулирования может обрабатывать тела, контакты, соединения и так далее, через несколько потоков задания. Вы можете задать каждому из этих потоков выполнение определенного количества элементов, таких как тела, контакты и соединения. Многие из параметров, предоставленных здесь, позволяют вам контролировать минимальное количество элементов, назначенных каждому заданию. Повышение минимума может уменьшить количество заданий, необходимых для выполнения. Это потому, что запуск большого количества заданий, каждое из которых обрабатывает только несколько элементов, обычно не очень эффективно. Настройки по умолчанию обеспечивают достойную производительность для баланса заданий, однако вы можете экспериментировать.
Кроме того, перед запуском симулирования, Rigidbody2D интерполяционные/экстраполяционные позиции хранятся готовыми для интерполяции/экстраполяции по кадрам. Они также выполняются с помощью системы заданий и управляются здесь.
Свойства
| Свойство | Описание |
|---|---|
| clearBodyForcesPerJob | Управляет минимальным числом тел, которые должны быть очищены в каждом задании моделирования. |
| clearFlagsPerJob | Управляет минимальным количеством флагов, которые должны быть сняты в каждом задании моделирования. |
| collideContactsPerJob | Управляет минимальным количеством контактов, которые должны столкнуться в каждом задании моделирования. |
| findNearestContactsPerJob | Управляет минимальным числом ближайших контактов, которые должны быть найдены в каждом задании моделирования. |
| interpolationPosesPerJob | Управляет минимальным количеством Rigidbody2D, интерполируемых в каждом задании моделирования. |
| islandSolverBodiesPerJob | Управляет минимальным количеством тел, которые должны быть решены в каждом задании моделирования при выполнении решения острова. |
| islandSolverBodyCostScale | Масштабирует стоимость каждого тела при решении дискретных островов. |
| islandSolverContactCostScale | Масштабирует стоимость каждого контакта во время разрешения дискретных островов. |
| islandSolverContactsPerJob | Управляет минимальным числом контактов, которые должны быть решены в каждом задании моделирования при выполнении решения острова. |
| islandSolverCostThreshold | Минимальная пороговая стоимость всех тел, контактов и соединений в острове при дискретном решении острова. |
| islandSolverJointCostScale | Масштабирует стоимость каждого соединения при решении дискретных островов. |
| newContactsPerJob | Управляет минимальным количеством новых контактов, которые должны быть найдены в каждом задании моделирования. |
| syncContinuousFixturesPerJob | Управляет минимальным числом приспособлений, которые должны синхронизироваться в широкой фазе во время непрерывного решения острова в каждом задании моделирования. |
| syncDiscreteFixturesPerJob | Управляет минимальным количеством приспособлений, которые должны синхронизироваться в широкой фазе во время решения дискретных островов в каждом задании моделирования. |
| updateTriggerContactsPerJob | Управляет минимальным количеством контактов триггеров, обновляемых в каждом задании моделирования. |
| useConsistencySorting | Должно ли физико-математическое моделирование сортировать многопоточные результаты для поддержания последовательности порядка обработки? |
| useMultithreading | Должно ли физическое моделирование использовать многопоточность? |