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

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Создать Цепь из нескольких форм, прикрепленных к указанному телу, которое само по себе находится в мире.