PhysicsWorld
структура в UnityEngine.LowLevelPhysics2D
Выполнено в:UnityEngine.Physics2DModule
Описание
Мир является контейнером для всех других физических объектов, таких как PhysicsBody, PhysicsShape, PhysicsJoint и т.д. Мир может быть симулирован в изоляции от всех других миров. Максимальное количество миров, которые могут быть созданы одновременно, определяется PhysicsConstants.MaxWorlds. Мир полностью изолирован от всех других миров.
Статические свойства
| Свойство | Описание |
|---|---|
| aabbMargin | Расстояние, используемое для расширения AABBs в широкофазном динамическом дереве, в метрах. Это позволяет широкофазным прокси перемещаться на небольшое расстояние без запуска корректировки дерева. Это значение равняется 0.05f * PhysicsWorld.lengthUnitsPerMeter. Обычно это 5см. |
| bodyMaxRotation | Максимальное вращение тела за шаг времени, в градусах. Этот предел очень большой и используется для предотвращения численных проблем. Это значение составляет примерно 45 градусов или 0.25f * PhysicsMath.PI радианов. |
| bodyTimeToSleep | Время, в секундах, которое должно пройти, прежде чем тело перейдет в спящий режим. Это значение равняется 0,5f |
| bypassLowLevel | Получить информацию о том, обходится ли низкоуровневая физика в данный момент. При обходе, никакие симуляции или рендеринг не будут происходить, что уменьшает ее до почти нулевого CPU. Это можно контролировать через PhysicsLowLevelSettings2D.bypassLowLevel. |
| concurrentSimulations | Контролирует, сколько симуляторов может быть запущено параллельно. В то время как параллельное выполнение симуляторов может повысить общую производительность, в идеале рабочие должны быть оставлены свободными для решателя симулятора, в противном случае это может ухудшить производительность решения. Фактическое количество используемых рабочих всегда будет ограничено количеством рабочих, доступных на текущем устройстве. Если общее количество доступных рабочих меньше 4, то параллельное симулирование не будет происходить, поскольку это обычно снижает общую производительность, однако параллельное решение каждого симулятора с использованием рабочих все равно будет использоваться. Это не следует путать с количеством рабочих, используемых при решении симулятора. |
| defaultWorld | Получить мир по умолчанию, созданный при запуске. Этот мир не может быть уничтожен, так как он постоянно принадлежит самому Unity. См. PhysicsWorld.SetOwner и PhysicsWorld.isOwned. |
| globalCounters | Получить счетчики миров, суммированные для всех активных миров. |
| globalProfile | Получить профиль времени мира, суммированный для всех активных миров. |
| hugeWorldExtent | Положения больше, чем около 16 км будут иметь проблемы точности, так что 100 км как предел должен быть в порядке во всех случаях. Это используется для обнаружения плохих значений. Это значение 100000.0f * PhysicsWorld.lengthUnitsPerMeter. |
| isRenderingAllowed | Получить информацию о том, разрешено ли рендеринг в данный момент. Рендирование всегда разрешено в Редакторе, но разрешено только в сборке, если PhysicsLowLevelSettings2D.drawInBuild активен при сборке. |
| lengthUnitsPerMeter | Возвращает внутреннее количество единиц длины на метр. Изменения вступят в силу только после выхода из режима Play. Физическая система строит все единицы длины на метрах, но вашему проекту могут понадобиться другие единицы. Это значение можно изменить, но делать это следует до любых других обращений к физической системе и только один раз. Изменение значения после создания хотя бы одного физического объекта может привести к серьёзной нестабильности симуляции. Например, если в вашей игре единицами служат пиксели, вы можете передавать все длины в физическую систему в пикселях. Дополнительных затрат это не даёт, однако у физической системы есть внутренние допуски и пороги, настроенные под метры. Вызвав эту функцию, вы позволяете физической системе точнее подстроить их. Хорошее эмпирическое правило — передать в функцию рост вашего персонажа. Если персонаж имеет высоту 32 пикселя, передайте 32. После этого можно смело передавать все длины в физическую систему в пикселях. Все длины, возвращаемые физической системой, тоже будут в пикселях, поскольку внутри она ничего не масштабирует; при этом подобрать удачные значения гравитации, плотности и сил теперь ваша задача. Значение по умолчанию — 1. |
| linearSlop | Небольшая длина, используемая в качестве допуска столкновения и ограничения, в метрах. Обычно она выбирается так, чтобы быть численно значительной, но визуально незначительной. Это значение 0.005f * PhysicsWorld.lengthUnitsPerMeter. Обычно это 0.5см. |
| safetyLocksEnabled | Получить/Установить, включены ли блокировки безопасного потока или нет. Блокировки включены по умолчанию, однако на платформах, которые не поддерживают потоки, блокировки не используются. Отключение блокировок может привести к небольшому повышению производительности, однако, обратите внимание на следующее EXTREME CAUTIONS. Обычно, в каждом мире, несколько операций чтения могут происходить параллельно, но только одна операция записи может происходить одновременно. Операции чтения и записи никогда не могут происходить одновременно. Блокировка является самобалансирующейся системой, предпочтительной для читателя, которая пытается уменьшить "голодование" записывающих. Как только записывающий находится в очереди, она регистрирует входящих читателей как ожидающих читателей и, как только активные читатели обрабатываются, она начинает обработку одного читателя. После обработки этого читателя, она переворачивает ожидающих читателей в активных читателей и обрабатывает их. Хотя эта система чрезвычайно быстра, она имеет очень небольшую накладную нагрузку. Отключение этой системы может дать небольшое повышение производительности, но почти всегда не стоит этого, поэтому эту опцию следует использовать только для тестирования. EXTREME CAUTION следует принимать, если отключить блокировки на платформах, которые поддерживают потоки! Большая часть этого API безопасна для потоков и обусловлена блокировками безопасности! Блокировки используются для обеспечения того, чтобы операции чтения и записи не мешали друг другу. Блокировки также обеспечивают, что никакие операции чтения или записи не происходят во время этапа симулирования. Перекрывающиеся операции чтения или записи почти наверняка приведут к повреждениям и последующим сбоям, так что если вы абсолютно уверены, что это не так, не отключайте блокировки! |
| speculativeContactDistance | Расстояние, на котором будут рассчитываться спекулятивные контакты. Это снижает тремор. Это значение 4.0f * PhysicsWorld.lengthUnitsPerMeter. Обычно это 2см. |
| useFullLayers | Показывает, активна ли опция PhysicsLowLevelSettings2D.useFullLayers или нет. Если PhysicsLowLevelSettings2D ассет не назначен, эта опция возвращает false (неактивна). При активации используются 64-битные слои (см. PhysicsLowLevelSettings2D.physicsLayerNames) для ящиков свойств и PhysicsLayers.GetLayerMask. При неактивации используются 32-битные слои (см. UnityEngine.LayerMask) для ящиков свойств и PhysicsLayers.GetLayerMask. Во всех случаях физическая система сама всегда будет использовать назначенные полные 64-битные слои, однако при использовании 32-битных слоев верхние 32-бита будут установлены на нуль. |
| worldCount | Получить число созданных миров. Это будет значение в диапазоне от 1 до PhysicsConstants.MaxWorlds. |
Свойства
| Свойство | Описание |
|---|---|
| autoBodyUpdateCallbacks | Управляет автоматическим вызовом целей обратного вызова для обновления тела. См. PhysicsWorld.SendBodyUpdateCallbacks |
| autoContactCallbacks | Управляет автоматическим вызовом целей обратного вызова контакта формы. См. PhysicsWorld.SendContactCallbacks |
| autoJointThresholdCallbacks | Управляет автоматическим вызовом целей обратного вызова совместного порога. См. PhysicsWorld.SendJointThresholdCallbacks |
| autoTriggerCallbacks | Управляет автоматическим вызовом целей обратного вызова триггера формы. См. PhysicsWorld.SendTriggerCallbacks |
| awakeBodyCount | Получить число бодрствующих тел в мире. |
| bodyUpdateEvents | Получить события тел из последней симуляции. Возвращённые объекты PhysicsBody перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsBody.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. BodyUpdateEvent. |
| bounceThreshold | Настройте порог отскока, обычно в метрах в секунду. Рекомендуется не делать это значение очень маленьким, потому что это не позволит тела спать. |
| contactBeginEvents | Получить события начала контакта из последней симуляции. Возвращённые объекты PhysicsShape перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsShape.isValid). Возвращённые объекты Contact перед обращением также нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. LowLevelPhysics2D.PhysicsShape.Contact.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. ContactBeginEvent. |
| contactDamping | Отскок контакта, причем 1 является критической амортизацией (неразмерной). |
| contactEndEvents | Получить события окончания контакта из последней симуляции. Возвращённые объекты PhysicsShape перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsShape.isValid). Возвращённые объекты Contact перед обращением также нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. LowLevelPhysics2D.PhysicsShape.Contact.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. ContactEndEvent. |
| contactFilterCallbacks | Контролирует, будут ли вызываться обратные вызова контактного фильтра. Обратный вызов контактного фильтра позволяет непосредственно управлять тем, будет ли создан контакт между двумя фигурами. Это относится как к триггерам, так и к нетриггерам, но только с Динамическими телами. Они относительно дороги, поэтому их отключение может обеспечить значительное повышение производительности. Обратный вызов контактного фильтра вызывает PhysicsShape.callbackTarget для обеих фигур, если они реализуют IContactFilterCallback. |
| contactFrequency | жесткость контакта в циклах в секунду. |
| contactHitEvents | Получить события попадания в контакт из последней симуляции. Возвращённые объекты PhysicsShape перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsShape.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. ContactHitEvent. |
| contactHitEventThreshold | Порог события контактного удара контролирует скорость столкновения, необходимую для генерации события контактного удара, обычно в метрах в секунду. См. ContactHitEvent. |
| contactRecycleDistance | Расстояние контакта для повторного использования, в метрах. Установка этого параметра на нуль отключает повторное использование контактных точек. Повторное использование контактных точек используется в симуляции во время небольшого относительного движения. Эта функция повышает стабильность и производительность примерно на 25% (приблизительно). Точки контакта не пересчитываются, пока фигуры не перемещаются более чем на 5 см (по умолчанию) относительно друг друга. Повторное использование контактных точек пропускает некоторые обновления, такие как трение, предварительное решение и т.д., пока контакты больше не используются. |
| contactSpeed | Скорость контакта, используемая для решения проблемы пересечения, в метрах в секунду. |
| continuousAllowed | Управляет использованием непрерывного обнаружения столкновений между динамическими и статическими телами. В целом, непрерывные столкновения следует оставлять включенными, чтобы предотвратить прохождение быстро движущихся объектов через статические объекты. Прирост производительности от отключения непрерывных столкновений незначителен. |
| counters | Получить счетчики мира. |
| definition | Получить/Установить определение мира путем доступа ко всем его текущим свойствам. Это предоставляется только для удобства и не должно использоваться, когда производительность важна, так как все свойства, определенные в определении, доступны последовательно. Вы должны попытаться использовать только конкретные свойства, которые вам нужны, а не использовать эту функцию. |
| drawCapacity | Управляет пропускной способностью рисования. Пропускная способность буферов при рисовании изначально равна нулю, однако увеличение этого значения означает, что буферы не будут изменяться при рисовании большего количества элементов, и поэтому не будет происходить распределения GC. Изменения не вступят в силу до выхода из режима воспроизведения. Это значение непосредственно управляет пропускной способностью для каждого типа рисуемого элемента. Используется только в Unity Editor или в Проигрывателе Разработки. |
| drawColors | Контролирует, какие цвета используются для рисования PhysicsBody, PhysicsShape, PhysicsJoint и т.д. Это используется только в Unity Editor или в Development Player. |
| drawContactType | Контролирует DrawContactType, используемый при рисовании точек контакта. |
| drawFillAlpha | Управляет альфа-заполнением рисунка. Используется для масштабирования внутреннего альфа-заполнения и используется только при использовании PhysicsWorld.DrawFillOptions.Outline, чтобы внутренний цвет можно было отличить от цвета контура по прозрачности. Используется только в Unity Editor или в Development Player. |
| drawFillOptions | Контролирует, какие аспекты рисуются с помощью LowLevelPhysics2D.PhysicsWorld.Draw. Этот параметр используется только в Unity Editor или в Development Player. |
| drawImpulseScale | Управляет масштабом импульса совместного контакта, используемым при рисовании контактных импульсов. Этот параметр используется только в Unity Editor или в Development Player. |
| drawNormalScale | Управляет масштабом контактной нормы соединения, используемым при рисовании контактных норм. Этот параметр используется только в Unity Editor или в Development Player. |
| drawOptions | Опции рисования используются для управления тем, что рисуется с помощью LowLevelPhysics2D.PhysicsWorld.Draw. Это используется только в Unity Editor или в разработке проигрывателя. См. DrawOptions. |
| drawPointScale | Управляет масштабом точек рисования, используемым при рисовании точек. Этот параметр используется только в Unity Editor или в Development Player. |
| drawThickness | Контролирует толщину рисунка (контур и ориентация). Этот параметр используется только в Unity Editor или в Development Player. |
| elementDepth | Контролирует глубину элемента. При использовании пользовательского рисования геометрии или примитивных форм нет ссылки на ортогональную ось, используемую по отношению к текущему PhysicsWorld.transformPlane. Глубина элемента находится в мировом пространстве и для каждой плана преобразования определяется следующим образом: Глубина элемента отображается вдоль оси Z при использовании PhysicsWorld.TransformPlane.XY.Element Глубина отображается вдоль оси Y при использовании PhysicsWorld.TransformPlane.XZ.Element Глубина отображается вдоль оси X при использовании PhysicsWorld.TransformPlane.ZY. Вы должны установить глубину элемента перед выполнением любого пользовательского рисования. Глубина элемента будет сброшена до нуля после завершения отображения. Это используется только в Unity Editor или в Проигрывателе Разработки. |
| gravity | Получить/Установить вектор гравитации, примененный ко всем телам в мире, обычно в m/s^2. |
| isDefaultWorld | Проверьте, является ли это мир по умолчанию PhysicsWorld. Мир по умолчанию автоматически создается при запуске. |
| isEmpty | Проверьте, является ли мир пустым, как определено отсутствием тел, форм или соединений. |
| isOwned | Получить, если мир принадлежит. См. PhysicsWorld.SetOwner. |
| isValid | Проверка действительности мира. |
| jointThresholdEvents | Получить события сочленений из последней симуляции. Событие порождается сочленением, которое превышает либо свой PhysicsJoint.forceThreshold, либо PhysicsJoint.torqueThreshold. Возвращённые объекты PhysicsJoint перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsJoint.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. JointThresholdEvent. |
| lastSimulationDeltaTime | Получить дельта-время, использованное для последнего запуска моделирования. |
| lastSimulationTimestamp | Получить метку времени, когда была запущена последняя модель. |
| maximumLinearSpeed | Получить/Установить максимальную линейную скорость. |
| ownerUserData | Получить PhysicsUserData, который может быть использован для любой цели, обычно только владельцем. |
| paused | Get/Set, если мир приостановлен. Когда мир приостановлен, любая попытка симулирования будет проигнорирована, независимо от того, автоматическая она или ручная. |
| preSolveCallbacks | Контролирует, будут ли вызываться обратные вызова предварительного разрешения. Это относится только к Динамическим телам и игнорируется для триггеров. Они относительно дороги, поэтому их отключение может обеспечить значительное повышение производительности. Обратный вызов предварительного разрешения будет вызывать PhysicsShape.callbackTarget для обеих фигур, если они реализуют IPreSolveCallback. |
| profile | Получить профиль мирового времени. |
| simulationSubSteps | Получить/Установить подшаги моделирования для использования во время моделирования. См. PhysicsWorld.Simulate. |
| simulationType | Получить/Установить тип моделирования, который контролирует, когда и будет ли моделирование автоматически имитироваться. См. SimulationType. |
| simulationWorkers | Получить/Установить число рабочих симулирования для мира. Один рабочий симулирования всегда используется для симулирования, поэтому число рабочих один означает только симулирование одного потока. Фактическое количество используемых рабочих всегда будет ограничено количеством рабочих, доступных на текущем устройстве, и чтение свойства возвратит число рабочих, фактически используемых устройством. Изменение числа рабочих постоянно не рекомендуется и повлияет на производительность, так как это требует повторного создания очереди задач. См. PhysicsWorldDefinition.simulationWorkers. |
| sleepingAllowed | Контролирует, будут ли тела спать, когда они не двигаются и не взаимодействуют. Спящие могут обеспечить значительное улучшение производительности, когда в мире много динамических или кинематических тел. |
| transformPlane | Контролирует плоскость преобразования, которую мир использует при записи преобразований. См. PhysicsWorld.transformWriteMode. |
| transformTweening | Определяет, используется ли интерполяция Transform. При интерполяции Transform тела, для которых задано свойство PhysicsBody.transformObject, в каждом кадре записывают данные в UnityEngine.Transform в соответствии с заданным для конкретного тела значением TransformWriteMode. Независимо от этой настройки интерполяция Transform не используется, если PhysicsWorld.simulationType имеет значение PhysicsWorld.SimulationType.Update или PhysicsWorld.transformWriteMode имеет значение PhysicsWorld.TransformWriteMode.Off. |
| transformWriteMode | Только те тела, у которых активен PhysicsBody.transformWriteMode и которые производят BodyUpdateEvent, будут записывать в трансформацию. См. TransformWriteMode. |
| triggerBeginEvents | Получить события начала срабатывания триггера из последней симуляции. Возвращённые объекты PhysicsShape перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsShape.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. TriggerBeginEvent. |
| triggerEndEvents | Получить события окончания срабатывания триггера из последней симуляции. Возвращённые объекты PhysicsShape перед обращением нужно проверять на действительность, так как с момента возникновения этого события они могли быть удалены (см. PhysicsShape.isValid). Любое изменение состояния мира может сделать эти данные недействительными, поэтому обращение к ним позже способно вызвать неминуемый сбой! Рекомендуется сразу же извлечь нужные сведения и не ссылаться на возвращённые данные напрямую. См. TriggerEndEvent. |
| userData | Получить/Установить PhysicsUserData, который может быть использован для любой цели. Это не может быть установлено на PhysicsWorld.defaultWorld и всегда будет по умолчанию. Физическая система не использует эти данные, они полностью предназначены для индивидуального использования. |
| warmStartingAllowed | Разрешается ли в мире запуск в прогретом состоянии? Отключение запуска в прогретом состоянии сильно повлияет на стабильность. Это обычно используется только для тестирования! |
Открытые методы
| Метод | Описание |
|---|---|
| CastGeometry | Возвращает shape(s), которые пересекают указанную геометрию Circle по мере ее прохождения через мир. См. QueryFilter, WorldCastMode, WorldCastResult и Allocator |
| CastMover | Запустить "движущегося", который является геометрией, разработанной для столкновения с миром и решения его движения. Все указано через WorldMoverInput с результатами, возвращаемыми в WorldMoverResult. |
| CastRay | Возвращает shape(s), которые пересекают указанный Радиус. Технически это сегмент линии, а не бесконечный радиус. См. QueryFilter, WorldCastMode, WorldCastResult и Allocator. |
| CastShape | Возвращает shape(s), которые пересекают указанную форму по мере ее прохождения через мир. Выбранная форма исключается из всех результатов и должна находиться в этом мире, в противном случае будет выведено предупреждение. Не поддерживаются ни типы форм PhysicsShape.ShapeType.Segment, ни PhysicsShape.ShapeType.ChainSegment. См. QueryFilter, WorldCastMode, WorldCastResult и Allocator. |
| CastShapeProxy | Возвращает shape(s), которые пересекают указанную геометрию Circle по мере ее прохождения через мир. См. QueryFilter, WorldCastMode, WorldCastResult и Allocator. |
| ClearDraw | Очистить все нарисованные элементы, которые имеют жизнь. Это используется только в Unity Editor или в игроке разработки. |
| CreateBody | Создайте тело, используя PhysicsBodyDefinition.defaultDefinition в мире. См. PhysicsBody.Create. |
| CreateBodyBatch | Создайте партию тел в мире. |
| CreateJoint | Создайте PhysicsDistanceJoint в мире. См. PhysicsDistanceJoint.Create. |
| Destroy | Уничтожить мир, уничтожая все объекты, содержащиеся в нем, такие как все PhysicsBody и прикрепленные PhysicsShape и PhysicsJoint. Если объект принадлежит PhysicsWorld.SetOwner, то вы должны предоставить ключ владельца, который он возвратил. Если вы этого не сделаете, будет возвращено предупреждение, и мир не будет уничтожен. Вы не можете уничтожить PhysicsWorld.defaultWorld, так как он постоянно принадлежит самому Unity. |
| DrawBox | Нарисовать Коробку. Этот способ используется только в Unity Editor или в Проигрывателе Разработки. |
| DrawCapsule | Нарисовать контур капсулы. Этот контур используется только в Unity Editor или в Development Player. Более подробную информацию о параметрах см. в CapsuleGeometry. |
| DrawCircle | Нарисовать контур круга. Этот контур используется только в Unity Editor или в Development Player. Дополнительную информацию о параметрах см. в CircleGeometry. |
| DrawGeometry | Нарисовать указанную геометрию круга. Этот параметр используется только в Unity Editor или в Проигрывателе разработки. См. CircleGeometry. |
| DrawLine | Нарисовать линию. Этот способ используется только в Unity Editor или в Проигрывателе Разработки. |
| DrawLineStrip | Нарисовать набор вершин как линии, соединенные друг с другом. Это используется только в Unity Editor или в Development Player. |
| DrawPoint | Нарисовать точку. Этот метод используется только в Unity Editor или в игре Development Player. Точка похожа на заполненный круг, за исключением того, что радиус здесь указывается в пикселях, а не в единицах мира. См. PhysicsWorld.DrawCircle. |
| DrawTransformAxis | Нарисовать ось Transform. Это используется только в Unity Editor или в Проигрывателе Разработки. |
| Explode | Применить радиальный взрыв, применяя импульсы в сторону от позиции для всех тел, обнаруженных в радиусе. |
| GetBodies | Получить все активные PhysicsBody в указанном мире. |
| GetBodyUpdateCallbackTargets | Получить все текущие PhysicsWorld.bodyUpdateEvents, где любой из PhysicsBody действителен (см. PhysicsBody.isValid) и имеет назначенную цель обратного вызова (см. PhysicsBody.callbackTarget). |
| GetBodyUpdateOwnerUserData | Получить все PhysicsBody.ownerUserData, назначенные каждому PhysicsBody, возвращаемому с помощью PhysicsWorld.bodyUpdateEvents. Возвращаемый Native Array будет такой же длины и порядка, как и BodyUpdateEvent, возвращаемый с помощью PhysicsWorld.bodyUpdateEvents. Любые PhysicsBody, которые не являются действительными, возвратят по умолчанию PhysicsUserData. |
| GetBodyUpdateUserData | Получить все PhysicsBody.userData, назначенные каждому PhysicsBody, возвращаемому с помощью PhysicsWorld.bodyUpdateEvents. Возвращаемый Native Array будет такой же длины и порядка, как и BodyUpdateEvent, возвращаемый с помощью PhysicsWorld.bodyUpdateEvents. Любые PhysicsBody, которые не являются действительными, возвратят по умолчанию PhysicsUserData. |
| GetContactCallbackTargets | Получить все текущие PhysicsWorld.contactBeginEvents и PhysicsWorld.contactEndEvents, где любой из PhysicsShape действителен (см. PhysicsShape.isValid) и имеет назначенную цель обратного вызова (см. PhysicsShape.callbackTarget). |
| GetJoints | Получить все активные PhysicsJoint в указанном мире. |
| GetJointThresholdCallbackTargets | Получить все текущие PhysicsWorld.jointThresholdEvents, где любой из PhysicsJoint действителен (см. PhysicsJoint.isValid) и имеет назначенную цель обратного вызова (см. PhysicsJoint.callbackTarget). |
| GetOwner | Получить объект владельца, связанный с этим миром, как указано с помощью PhysicsWorld.SetOwner. |
| GetTransformWriteTweens | Возвращает все существующие Transform Write Tween, которые обрабатываются в каждом кадре. Возвращаемый NativeArray_1 ссылается на покадровый внутренний буфер, принадлежащий миру; собственной памяти у него нет (поэтому его освобождение ничего не делает). Содержимое действительно только до следующего шага симуляции, после чего буфер может быть переиспользован или уничтожен. Если нужна более долговечная копия, скопируйте содержимое в NativeArray_1, принадлежащий вызывающей стороне. |
| GetTriggerCallbackTargets | Получить все текущие PhysicsWorld.triggerBeginEvents и PhysicsWorld.triggerEndEvents, где любой из PhysicsShape действителен (см. PhysicsShape.isValid) и имеет назначенную цель обратного вызова (см. PhysicsShape.callbackTarget). |
| OverlapAABB | Возвращает все фигуры, которые потенциально перекрывают указанную AABB. Перекрытие находится между AABB фигур в мире, поэтому оно может не привести к точному перекрытию самой фигуры. См. PhysicsAABB, QueryFilter, WorldOverlapResult и Allocator. |
| OverlapGeometry | Возвращает все фигуры, которые перекрывают указанную геометрию Circle. Окружность с радиусом 0 эквивалентна PhysicsWorld.OverlapPoint. См. CircleGeometry, QueryFilter, WorldOverlapResult и Allocator |
| OverlapPoint | Возвращает все фигуры, которые перекрывают указанную точку. См. QueryFilter, WorldOverlapResult и Allocator. |
| OverlapShape | Возвращает все формы, которые перекрывают указанную форму. Выбранная форма исключается из всех результатов и должна находиться в этом мире, в противном случае будет выведено предупреждение. |
| OverlapShapeProxy | Возвращает все фигуры, которые перекрывают прокси фигуры. См. QueryFilter. WorldOverlapResult и Allocator. |
| Reset | Сбрасывает мир в каноническое состояние, чтобы он каждый раз давал одинаковые результаты. Для этого вызова мир должен быть пустым, иначе будет выдано предупреждение. |
| SendAllCallbacks | Отправить все обратные вызова к целям: PhysicsWorld.SendBodyUpdateCallbacksPhysicsWorld.SendTriggerCallbacksPhysicsWorld.SendContactCallbacksPhysicsWorld.SendJointThresholdCallbacks |
| SendBodyUpdateCallbacks | Посылать все текущие PhysicsWorld.bodyUpdateEvents, где PhysicsBody является действительным (см. PhysicsBody.isValid) и имеет назначенную цель обратного вызова (см. PhysicsBody.callbackTarget). Будут вызываться только цели обратного вызова, которые реализуют IBodyUpdateCallback. Это будет вызываться автоматически, если PhysicsWorld.autoBodyUpdateCallbacks является истинным. Это должно быть вызванно на главном потоке. |
| SendContactCallbacks | Посылать все текущие PhysicsWorld.contactBeginEvents и PhysicsWorld.contactEndEvents, где любой из PhysicsShape действителен (см. PhysicsShape.isValid) и имеет назначенную цель обратного вызова (см. PhysicsShape.callbackTarget). Эти события будут созданы только в том случае, если обе пары форм имеют PhysicsShape.contactEvents установленную на true. Будут вызваны только цели обратного вызова, которые реализуют IContactCallback. Это будет вызвано автоматически, если PhysicsWorld.autoContactCallbacks установлена на true. Это должно быть вызванно в основном потоке. |
| SendJointThresholdCallbacks | Посылать все текущие PhysicsWorld.jointThresholdEvents, где PhysicsJoint действительны (см. PhysicsJoint.isValid) и имеют назначенную цель обратного вызова (см. PhysicsJoint.callbackTarget). Эти события будут созданы только если соединение превысит свои PhysicsJoint.forceThreshold или PhysicsJoint.torqueThreshold. Будут вызваны только цели обратного вызова, которые реализуют IJointThresholdCallback. Это будет вызвано автоматически, если PhysicsWorld.autoJointThresholdCallbacks является истинным. Это должно быть вызванно на главном потоке. |
| SendTriggerCallbacks | Посылать все текущие PhysicsWorld.triggerBeginEvents и PhysicsWorld.triggerEndEvents, где любой из PhysicsShape действителен (см. PhysicsShape.isValid) и имеет назначенную цель обратного вызова (см. PhysicsShape.callbackTarget). Эти события будут созданы только если одна из пар форм имеет PhysicsShape.triggerEvents установленную на true. Будут вызываться только цели обратного вызова, которые реализуют ITriggerCallback. Это будет вызываться автоматически, если PhysicsWorld.autoTriggerCallbacks установлена на true. Это должно быть вызванно на главном потоке. |
| SetElementDepth3D | Задайте глубину элемента, используя указанную позицию 3D. Соответствующая ось будет извлечена с помощью текущей PhysicsWorld.transformPlane. Это используется только в Unity Editor или в Development Player. Для более подробной информации см. PhysicsWorld.elementDepth. |
| SetOwner | Устанавливает (необязательно) объект владельца, связанный с этим миром, и возвращает ключ владельца, который должен быть указан при уничтожении мира с помощью PhysicsWorld.Destroy. Система физики обеспечивает доступ ко всем объектам, включая возможность уничтожения их, так что эта функция может быть использована для предотвращения случайного уничтожения объектов, принадлежащих другим объектам. Вы можете установить владельца только один раз, многократные попытки вызовут предупреждение. Срок жизни указанного объекта владельца не связан с этим миром i.e. этот мир будет по-прежнему принадлежать объекту владельца, даже если он будет уничтожен. Также допустимо не указывать объект владельца (NULL), чтобы просто получить ключ владельца, но это может быть полезно, если только для целей отладки и обнаружения, чтобы знать, какой объект является владельцем. |
| SetOwnerUserData | Набор PhysicsUserData, который может быть использован для любой цели, обычно только владельцем. |
| Simulate | Симулировать мир. Мир должен иметь свой PhysicsWorld.simulationType установлен на PhysicsWorld.SimulationType.Script для того, чтобы это работало. |
| TestOverlapAABB | Проверяет, не перекрывается ли указанная AABB потенциально с какими-либо формами. Перекрытие происходит между AABB формами в мире, поэтому оно может не привести к точному перекрытию самой формы. См. PhysicsAABB и QueryFilter. |
| TestOverlapGeometry | Проверяет, не перекрывается ли указанная геометрия круга с любыми фигурами. Окружность с радиусом 0 эквивалентна PhysicsWorld.TestOverlapPoint. См. CircleGeometry и QueryFilter. |
| TestOverlapPoint | Проверяет, перекрывает ли указанная точка какие-либо фигуры. См. QueryFilter. |
| TestOverlapShape | Проверяет, не перекрывает ли указанная форма какие-либо формы. Выбранная форма исключается из всех результатов и должна находиться в этом мире, иначе будет выведено предупреждение. |
| TestOverlapShapeProxy | Проверить, не перекрывает ли предоставленный прокси-файл формы какие-либо формы. |
Статические методы
| Метод | Описание |
|---|---|
| Create | Создайте PhysicsWorld с помощью PhysicsWorldDefinition.defaultDefinition. |
| DestroyBodyBatch | Уничтожить партию тел. Любые недействительные тела будут проигнорированы. Тела, принадлежащие владельцу, вызовут предупреждение и не будут уничтожены (см. PhysicsBody.SetOwner). |
| DestroyJointBatch | Уничтожить партию соединений. Любые недействительные соединения будут проигнорированы. Принадлежащие соединения вызовут предупреждение и не будут уничтожены (PhysicsJoint.SetOwner). |
| DestroyShapeBatch | Уничтожить партию форм, уничтожая все Контакты, в которых фигуры участвуют. Любые недействительные формы будут проигнорированы, включая формы сегмента цепи, созданные с помощью PhysicsChain (цепь должна быть уничтожена)." Принадлежащие формы будут вызывать предупреждение и не будут уничтожены (PhysicsShape.SetOwner). См. MassConfiguration. |
| GetWorlds | Получить все активные PhysicsWorld. Это включает в себя PhysicsWorld.defaultWorld, так что всегда будет содержать по крайней мере один мир. |