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, как указано ниже:
- Объект CircleCollider2D производит один объект PhysicsShapeType2D.Circle
- Объект CapsuleCollider2D производит один объект PhysicsShapeType2D.Capsule
- Объект EdgeCollider2D создает один объект PhysicsShapeType2D.Edges
- BoxCollider2D создает одиночный объект PhysicsShapeType2D.Polygon (блок представляет собой выпуклый многоугольник)
- А PolygonCollider2D производит либо один или несколько PhysicsShapeType2D.Polygon object(s)
- А TilemapCollider2D производит либо один или несколько PhysicsShapeType2D.Polygon object(s) (каждая плитка может производить несколько полигонов, так что это может производить много данных)
- CompositeCollider2D производит один или несколько PhysicsShapeType2D.Polygon (CompositeCollider2D.GeometryType.Polygons) или PhysicsShapeType2D.Edges (CompositeCollider2D.GeometryType.Outlines) object(s)
Все вершины 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.