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

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, который может быть использован для любой цели, обычно только владельцем.
pausedGet/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, так что всегда будет содержать по крайней мере один мир.