PhysicsChain
структура в UnityEngine.LowLevelPhysics2D
Выполнено в:UnityEngine.Physics2DModule
Описание
Специальная форма, которая создает цепь форм, соединенных вместе для создания непрерывной поверхности. Цепные формы обеспечивают гладкую, непрерывную поверхность, которая не будет производить столкновения "призрака". PhysicsChain автоматически уничтожается, когда уничтожается тело, в котором оно находится. PhysicsChain не может существовать без присоединения к телу. Это приведет к форме типа PhysicsShape.ShapeType.ChainSegment.
- Цепи односторонние.
- Цепь не имеет массы, поэтому в идеале её следует применять к статическим телам.
- Цепь может иметь порядок намотки против часовой стрелки (нормальные точки справа от направления сегмента).
- Цепочка является либо петлей, либо открытой.
- Цепь должна иметь не менее 4-х точек.
- Расстояние между любыми двумя точками должно быть больше PhysicsWorld.linearSlop.
- Цепочка не должна пересекать себя (это не подтверждено).
- Открытая цепь не имеет столкновения на первом и последнем краю.
- Вы можете перекрывать две открытые цепи на их первых трех и/или последних трех точках, чтобы получить плавное столкновение.
Свойства
| Свойство | Описание |
|---|---|
| aabb | Получить мир AABB, который ограничивает эту цепочку. Границы формы немного увеличены из-за обнаружения спекулятивного столкновения. Инфляция меньше на статических типах форм, но она не равна нулю из-за обнаружения столкновения по времени. Если требуется точное AABB, то вы можете получить его через геометрию формы. |
| body | Кузов, к которому крепится цепь. |
| bounciness | Отскок цепи. Обычно это находится в диапазоне [0, 1]. Значения выше 1 приведут к добавлению энергии, что может привести к нестабильному моделированию. |
| bouncinessMixing | Определяет метод, используемый при смешивании значений отскока двух фигур для формирования контакта фигуры. Это назначается текущему 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. |
| friction | Трение собственных форм цепи. Обычно это находится в диапазоне [0, 1]. Значения выше 1 приведут к добавлению энергии, что может привести к нестабильному моделированию. |
| frictionMixing | Определяет метод, используемый при смешивании значений трения двух фигур для создания контакта между ними. Это назначается текущему PhysicsShape.surfaceMaterial. |
| isOwned | Получить, если цепь принадлежит. См. PhysicsChain.SetOwner. |
| isValid | Проверить, является ли форма действительной. |
| ownerUserData | Получить PhysicsUserData, который может быть использован для любой цели, обычно только владельцем. |
| segmentCount | Получить число сегментов цепи, созданных и принадлежащих этой цепи. См. PhysicsShape.ShapeType.ChainSegment. |
| userData | Получить/Установить PhysicsUserData, который может быть использован для любой цели. Физическая система не использует эти данные, они полностью предназначены для индивидуального использования. |
| world | Получить мир, к которому прикреплена цепь. |
Открытые методы
| Метод | Описание |
|---|---|
| CastRay | Проверьте, не пересекается ли луч с цепочкой. См. CastResult. |
| CastShape | Рассчитать, пересекает ли фигура цепь. См. CastShapeInput и CastResult. |
| ClosestPoint | Рассчитать ближайшую точку на этой цепи к указанной точке. |
| Destroy | Уничтожить PhysicsChain и все PhysicsShape.ShapeType.ChainSegment, которыми он владеет. Если объект принадлежит PhysicsChain.SetOwner, то вы должны предоставить ключ владельца, который он возвратил. Если этого не сделать, то будет возвращено предупреждение и цепь не будет уничтожена. Срок жизни указанного объекта владельца не связан с этой цепью i.e. Эта цепь будет по-прежнему принадлежать объекту владельца, даже если она будет уничтожена. Это единственный способ уничтожить формы типа PhysicsShape.ShapeType.ChainSegment, если они были созданы PhysicsChain. |
| GetOwner | Получить объект владельца, связанный с этой цепочкой, как указано с помощью PhysicsChain.SetOwner. |
| GetSegmentIndex | Получить индекс указанного Сегмента Цепи PhysicsShape. |
| GetSegments | Получить все сегменты цепи, созданные и принадлежащие этой цепи. |
| SetOwner | Устанавливает (необязательно) объект владельца, ассоциированный с этой цепочкой, и возвращает ключ владельца, который должен быть указан при уничтожении формы с помощью PhysicsChain.Destroy. Физическая система обеспечивает доступ ко всем объектам, включая возможность уничтожения их, так что эта функция может быть использована для предотвращения случайного уничтожения объектов, принадлежащих другим объектам. Вы можете установить владельца только один раз, многократные попытки вызовут предупреждение. Также допустимо не указывать объект владельца (NULL) для простого получения ключа владельца, однако это может быть полезно, если только для целей отладки и обнаружения, чтобы знать, какой объект является владельцем. |
| SetOwnerUserData | Набор PhysicsUserData, который может быть использован для любой цели, обычно только владельцем. |
Статические методы
| Метод | Описание |
|---|---|
| Create | Создать Цепь из нескольких форм, прикрепленных к указанному телу, которое само по себе находится в мире. |