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. |