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

PhysicsShape

структура в UnityEngine.LowLevelPhysics2D

Выполнено в:UnityEngine.Physics2DModule

Описание

Форма прикрепляется к телу и определяет область, в которой обрабатываются два различных типа поведения:

  • Столкновение: Контакты между фигурами вызывают столкновение их соответствующих тел, если их тип тела является Динамическим.
  • Триггер: Контакты между фигурами не вызывают реакцию столкновения, сообщается только о том, что они перекрываются.
Неограниченное количество фигур может быть прикреплено к одному телу, известному как составное тело. Форма автоматически уничтожается, когда уничтожается тело, к которому она прикреплена. Форма не может существовать без прикрепления к телу.

Свойства

Свойство Описание
aabbПолучить мир AABB, который ограничивает эту форму. Границы формы немного увеличены из-за обнаружения спекулятивного столкновения. Инфляция меньше для статических типов форм, но не равна нулю из-за обнаружения столкновения по времени. Если требуется точное AABB, то вы можете получить его через геометрию формы. См. CircleGeometry.CalculateAABB, CapsuleGeometry.CalculateAABB, PolygonGeometry.CalculateAABB и SegmentGeometry.CalculateAABB.
bodyТело, к которому прикреплена фигура.
bouncinessОтскок (коэффициент восстановления) обычно в диапазоне [0, 1]. Значения выше 1 приведут к добавлению энергии, что может привести к нестабильному моделированию. Это назначается текущему PhysicsShape.surfaceMaterial.
bouncinessMixingОпределяет метод, используемый при смешивании значений трения двух форм для создания контакта. Это назначено текущему PhysicsShape.surfaceMaterial.
bouncinessPriorityПриоритет для объединения свойств PhysicsShape.bounciness при контакте двух фигур. Если приоритет одной фигуры выше, чем другой, то будет использоваться более высокий приоритет PhysicsShape.SurfaceMaterial.bouncinessMixing. Если приоритет обеих фигур одинаков, то просто будет использоваться более высокое значение перечисления UnityEngine.PhysicsMaterialCombine2D из обеих фигур. Это назначается текущей PhysicsShape.surfaceMaterial.
callbackTargetПолучить/Установить System.Object, на который будут отправляться обратные вызова для этой формы. Следует быть осторожным с любым System.Object, назначенным в качестве цели обратного вызова, который не является UnityEngine.Object, так как это назначение само по себе не сохранит объект живым и может стать мусором. Чтобы избежать этого, вы должны иметь хотя бы одну ссылку на объект в вашем коде. Это включает следующие события: ContactFilterEvent с вызовом IContactFilterCallback.A PreSolveEvent с вызовом IPreSolveCallback.A TriggerBeginEvent с вызовом ITriggerCallback.A TriggerEndEvent с вызовом ITriggerCallback.A ContactBeginEvent с вызовом IContactCallback.A ContactEndEvent с вызовом IContactCallback.
capsuleGeometryПолучить/Установить капсулу, связанную с этой формой. При получении геометрии формы, тип формы должен соответствовать типу геометрии, в противном случае будет возвращено предупреждение и неправильная геометрия. Установка геометрии изменит тип представленной формы, даже если тип формы был иным раньше. Установка геометрии также приведет к пробуждению тела, к которому прикреплена форма.
chainПолучить цепочку владения. Тип формы должен быть PhysicsShape.ShapeType.ChainSegment, иначе будет выведено предупреждение. См. PhysicsShape.isChainSegment и PhysicsChain.
chainSegmentGeometryПолучить геометрию сегмента цепи, связанную с этой фигурой. При получении геометрии фигуры тип фигуры должен соответствовать типу геометрии, в противном случае будет выведено предупреждение и возвращена неверная геометрия.
circleGeometryПолучить/Установить Окружность, ассоциированную с этой формой. При получении геометрии формы, тип формы должен соответствовать типу геометрии, в противном случае будет возвращено предупреждение и неправильная геометрия. Установка геометрии изменит тип представленной формы, даже если тип формы был иным до этого. Установка геометрии приведет к пробуждению тела, к которому прикреплена форма.
contactEventsУправляет тем, производит ли эта форма контактные события, которые могут быть получены после завершения симулирования. Любые контактные события могут быть использованы для вызова назначенного PhysicsShape.callbackTarget. Событие контакта производится, если у любой из участвующих форм включено contactEvents. Событие контакта производит IContactCallback для PhysicsShape.callbackTarget для обеих участвующих форм.
contactFilterФильтр, используемый при определении контактов, в которых участвует эта фигура.
contactFilterCallbacksКонтролирует, производит ли эта форма обратные вызова контактного фильтра. Обратный вызов контактного фильтра позволяет непосредственно управлять тем, будет ли создан контакт между парой форм. Это относится как к триггерам, так и к нетриггерам, но только с динамическими телами. Эти триггеры относительно дороги, поэтому их отключение может обеспечить значительное повышение производительности. Обратный вызов контактного фильтра вызывает PhysicsShape.callbackTarget для обеих участвующих форм, если они реализуют IContactFilterCallback.
customColorНастраиваемый цвет отладки рисунка. Любое значение цвета, кроме UnityEngine.Color.clear (RGBA=0), будет использовано для отображения формы. Это значение передается обратно при использовании отладки рисунка PhysicsWorld. Значение alpha здесь всегда игнорируется. Это используется только в Unity Editor или в Development Player. Это назначается текущему PhysicsShape.surfaceMaterial. См. LowLevelPhysics2D.PhysicsWorld.Draw.
definitionПолучить/Установить определение формы путем доступа ко всем ее текущим свойствам. Это предоставляется только для удобства и не должно использоваться, когда производительность важна, так как все свойства, определенные в определении, доступны последовательно. Вы должны попытаться использовать только конкретные свойства, которые вам нужны, а не использовать эту функцию.
frictionКулонов коэффициент трения (сухой), обычно в диапазоне [0, 1]. Это присваивается к текущему PhysicsShape.surfaceMaterial.
frictionMixingОпределяет метод, используемый при смешивании значений трения двух форм для создания контакта. Это назначено текущему PhysicsShape.surfaceMaterial.
frictionPriorityПриоритет для объединения свойств PhysicsShape.friction при контакте двух фигур. Если приоритет одной фигуры выше, чем другой, то будет использоваться более высокий приоритет PhysicsShape.SurfaceMaterial.frictionMixing. Если приоритет обеих фигур одинаков, то просто будет использоваться более высокое значение перечисления UnityEngine.PhysicsMaterialCombine2D из обеих фигур. Это назначается текущей PhysicsShape.surfaceMaterial.
hitEventsУправляет тем, создает ли эта форма события попадания, которые можно получить после завершения моделирования.
isChainSegmentПроверьте, является ли форма типом Цепи. Тип Цепи принадлежит цепи. См. PhysicsShape.chain и PhysicsChain.
isOwnedПолучить, если форма принадлежит. См. PhysicsShape.SetOwner.
isTriggerПолучить или задать, является ли фигура триггером. Менять это состояние сравнительно дорого, и этого следует избегать. См. PhysicsShapeDefinition.isTrigger.
isValidПроверить, является ли форма действительной.
localCenterПолучить центр фигуры в локальном пространстве.
massConfigurationКонфигурация массы формы. Обычно это используется только на теле, где сумма всех форм используется. Это позволяет рассчитывать эту конкретную форму в изоляции. См. MassConfiguration.
moverDataДанные перемещения для перемещения формы.
ownerUserDataПолучить PhysicsUserData, который может быть использован для любой цели, обычно только владельцем.
polygonGeometryПолучить/Установить многоугольник, связанный с этой фигурой. При получении геометрии фигуры, тип фигуры должен соответствовать типу геометрии, в противном случае будет возвращено предупреждение и неправильная геометрия. Установка геометрии изменит тип представленной фигуры, даже если тип фигуры был иным раньше. Установка геометрии также приведет к пробуждению тела, к которому прикреплена фигура.
preSolveCallbacksУправляет тем, производит ли эта форма обратные вызова предварительного разрешения. Это относится только к Динамическим телам и игнорируется для триггеров. Они относительно дороги, поэтому их отключение может обеспечить значительное повышение производительности. Обратный вызов предварительного разрешения вызывает PhysicsShape.callbackTarget для обеих участвующих форм, если они реализуют IPreSolveCallback.
rollingResistanceСопротивление качению обычно в диапазоне [0, 1]. Это присваивается к текущему PhysicsShape.surfaceMaterial.
segmentGeometryПолучить/Установить сегмент, связанный с этой фигурой. При получении геометрии фигуры, тип фигуры должен соответствовать типу геометрии, в противном случае будет возвращено предупреждение и неправильная геометрия. Установка геометрии изменит тип представленной фигуры, даже если тип фигуры был иным раньше. Установка геометрии также приведет к пробуждению тела, к которому прикреплена фигура.
shapeTypeТип формы. См. ShapeType.
startMassUpdateЕсли тело обновляет свойства массы при создании этой фигуры. Отключение этой функции повышает производительность при добавлении нескольких фигур к одному и тому же телу. Масса тела может быть явно обновлена путем вызова PhysicsBody.ApplyMassFromShapes См. PhysicsShapeDefinition.startMassUpdate.
startStaticContactsОбычно формы на Статических телах не создают контактов, когда они добавляются в мир. Это переопределяет это поведение и вызывает создание контактов. Это значительно замедляет создание Статических тел, что может быть важно, когда есть много Статических форм. Это имплицитно всегда верно для Триггеров, Динамических тел и Кинематических тел. См. PhysicsShapeDefinition.startStaticContacts.
surfaceMaterialМатериал поверхности для формы, состоящей из многих свойств, таких как трение, отдача, сопротивление качению и т.д. Установка материала поверхности переопределяет любые индивидуальные настройки для трения, отдачи, сопротивления качению и т.д.
tangentSpeedСкорость касательной (поверхности). Она присваивается текущему PhysicsShape.surfaceMaterial.
transformПолучить преобразование формы. Это просто преобразование тела. См. PhysicsBody.transform.
triggerEventsУправляет тем, производит ли эта фигура триггеры, которые могут быть получены после завершения симулирования. Триггер создается только в том случае, если обе фигуры имеют включенную функцию triggerEvents. Триггер создаст событие ITriggerCallback для PhysicsShape.callbackTarget для обеих фигур.
userDataПолучить/Установить PhysicsUserData, который может быть использован для любой цели. Физическая система не использует эти данные, они полностью предназначены для индивидуального использования.
worldПолучить мир, к которому прикреплена форма.

Открытые методы

Метод Описание
ApplyWindПрименить силу ветра к телу фигуры, используя плотность воздуха Это рассматривает проецируемую площадь фигуры в направлении ветра. Это также рассматривает относительную скорость фигуры. Это имеет эффект только если тело фигуры UnityEngine.RigidbodyType2D.Dynamic. Это имеет эффект только для фигур типа Круг, Капсула или Полигон.
CastRayПроверьте, не пересекается ли луч с фигурой. См. CastResult.
CastShapeРассчитывает, если отлитая форма пересекает форму. Первоначально соприкасающиеся формы рассматриваются как промах. Вы должны сначала проверить на перекрытие, если требуется первоначальное перекрытие. См. CastShapeInput и CastResult.
ClosestPointРассчитать ближайшую точку на этой фигуре к указанной точке.
CreateShapeProxyСоздание прокси-формы из формы.
DestroyУничтожить форму, уничтожая все контакты, в которых фигура участвует. Если объект принадлежит PhysicsShape.SetOwner, то вы должны указать ключ владельца, который он возвращает. Если этого не сделать, будет возвращено предупреждение и фигура не будет уничтожена. Срок жизни указанного объекта владельца не связан с этой фигурой i.e. эта фигура будет по-прежнему принадлежать объекту владельца, даже если она будет уничтожена. Формы типа Цепь не могут быть уничтожены здесь, они должны быть уничтожены их цепочкой владельцев. См. PhysicsChain и MassConfiguration.
DrawОтрисуйте PhysicsShape, визуально представляющий его текущее состояние в мире. Используется только в Unity Editor или в сборке для разработки.
GetContactsПолучить все касательные контакты, в которых в настоящее время участвует эта фигура.
GetDensityПолучить плотность формы. См. PhysicsBody.massConfiguration.
GetOwnerПолучить объект владельца, связанный с этой фигурой, как указано с помощью PhysicsShape.SetOwner.
GetPerimeterПолучить длину периметра фигуры.
GetPerimeterProjectedПолучить длину периметра фигуры, проецированной на указанную ось.
GetTriggerVisitorsПолучить все триггеры посетителей для этой формы. Форма должна быть триггером, если нет, то посетители не будут возвращены.
IntersectПроверьте пересечение между этой фигурой и другой фигурой.
OverlapPointПроверить, пересекается ли точка с фигурой. Это будет работать только на "закрытых" фигурах. SeeShapeType.
SetDensityУстановить плотность формы. См. PhysicsBody.massConfiguration.
SetOwnerУстанавливает (необязательно) объект владельца, ассоциированный с этой формой, и возвращает ключ владельца, который должен быть указан при уничтожении формы с помощью PhysicsShape.Destroy. Система физики обеспечивает доступ ко всем объектам, включая возможность уничтожения их, так что эта функция может быть использована для предотвращения случайного уничтожения объектов, которые принадлежат другим объектам. Вы можете установить владельца только один раз, многократные попытки вызовут предупреждение. Также допустимо не указывать объект владельца (NULL) для простого получения ключа владельца, однако это может быть полезно, если только для целей отладки и обнаружения, чтобы знать, какой объект является владельцем.
SetOwnerUserDataНабор PhysicsUserData, который может быть использован для любой цели, обычно только владельцем.

Статические методы

Метод Описание
CreateShapeСоздает фигуру круга, используя его определение по умолчанию, прикрепленную к указанному телу. См. PhysicsBody.CreateShape.
CreateShapeBatchСоздать пакет фигур круга, прикрепленных к указанному телу.
DestroyBatchУничтожить партию фигур, уничтожая все Контакты, в которых фигуры участвуют. Любые недействительные фигуры будут проигнорированы, включая фигуры сегмента цепи, созданные с помощью PhysicsChain (цепь должна быть уничтожена)." Принадлежащие фигуры будут вызывать предупреждение и не будут уничтожены (см. PhysicsShape.SetOwner). См. MassConfiguration.