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

Collider2D.GetShapes

Declaration

public int GetShapes(PhysicsShapeGroup2D physicsShapeGroup);

Параметры

Параметр Описание
physicsShapeGroup PhysicsShapeGroup2D для хранения полученных PhysicsShape2D в.

Возвращаемое значение

инт Возвращает число PhysicsShape2D, полученных из Collider2D.

Описание

Получает все PhysicsShape2D, используемые Collider2D.

Все Collider2D представляют собой высокоуровневое определение геометрии 2D, которая используется для создания эффективных низкоуровневых примитивных форм, используемых физическим движком для обнаружения столкновений. Эти низкоуровневые примитивные формы рисуются 2D физическими гаджетами внутри Unity Editor. Этот метод предоставляет доступ к копии этих примитивных форм, которые могут быть полезны в различных случаях использования, таких как отладка и гаджеты или отображение геометрии Collider2D во время выполнения.

Используйте этот метод для получения доступа к копии всех низкоуровневых примитивных форм, созданных Collider2D. Если таких форм не существует на Collider2D, как указано в Collider2D.shapeCount, то группа форм не будет заполнена формами. Если формы существуют, группа сначала очищается, прежде чем она будет заполнена формами.

Каждый Collider2D производит один или несколько PhysicsShape2D из одного PhysicsShapeType2D, как указано ниже:

Все вершины Collider2D фигур хранятся в локальном пространстве Rigidbody2D, они присоединены к i.e. их вершины относятся к положению Rigidbody2D, поэтому когда Rigidbody2D перемещается или вращается, вершины присоединенных Collider2D не меняются. Вот почему изменения в положении или вращения должны происходить только через Rigidbody2D, так как это самый эффективный метод. При получении фигур вершины фигур находятся в локальном пространстве Rigidbody2D. Текущее положение и вращение Rigidbody2D хранятся в PhysicsShapeGroup2D.localToWorldMatrix и могут быть использованы для преобразования вершин фигур в мировое пространство. Если Collider2D не присоединен ни к одному из Rigidbody2D i.e. он является Статическим, то локальное пространство и мировое пространство идентичны, поэтому PhysicsShapeGroup2D.localToWorldMatrix устанавливается на Matrix4x4.identity.

Примечание: Рекомендуется повторно использовать PhysicsShapeGroup2D, потому что в этом случае выделение памяти происходит только в том случае, если число форм или вершин, полученных, превышает существующую емкость PhysicsShapeGroup2D. Повторное использование этого объекта, таким образом, минимизирует выделения до абсолютного минимума и в конечном итоге до нуля, так что никакой работы не производится для сборщика мусора.

Дополнительные ресурсы: Rigidbody2D.GetShapes.

Declaration

public int GetShapes(PhysicsShapeGroup2D physicsShapeGroup, int shapeIndex, int shapeCount = 1);

Параметры

Параметр Описание
physicsShapeGroup PhysicsShapeGroup2D для хранения полученных PhysicsShape2D в.
shapeIndex Индекс первой фигуры, которую нужно извлечь. Индекс должен находиться в диапазоне от 0 до Collider2D.shapeCount-1.
shapeCount Число форм для получения. shapeIndex + shapeCount должно быть меньше или равно Collider2D.shapeCount.

Возвращаемое значение

инт Возвращает число PhysicsShape2D, полученных из Collider2D. Во всех случаях это должно быть то же число, что и shapeCount.

Описание

Получает указанный диапазон PhysicsShape2D, используемый Collider2D.