CollisionPolygon2D

Наследует: Node2D < CanvasItem < Node < Object

Узел, который придает многоугольную форму родительскому объекту CollisionObject2D.

Описание

Узел, который задает форму многоугольника для родительского объекта CollisionObject2D и позволяет его редактировать. Многоугольник может быть вогнутым или выпуклым. Это может придать форму обнаружения объекту Area2D, превратить объект PhysicsBody2D в твердый объект или придать объекту StaticBody2D форму полого объекта.

Предупреждение: Объект CollisionPolygon2D с неравномерным масштабированием, скорее всего, будет вести себя не так, как ожидается. Убедитесь, что его масштаб одинаков по всем осям, и вместо этого отрегулируйте его многоугольник.

Свойства

BuildMode

build_mode

0

bool

disabled

false

bool

one_way_collision

false

float

one_way_collision_margin

1.0

PackedVector2Array

polygon

PackedVector2Array()


Перечисления

enum BuildMode: 🔗

BuildMode BUILD_SOLIDS = 0

Столкновения будут включать полигон и его содержащуюся область. В этом режиме узел имеет тот же эффект, что и несколько узлов ConvexPolygonShape2D, по одному для каждой выпуклой формы в выпуклом разложении полигона (но без накладных расходов нескольких узлов).

BuildMode BUILD_SEGMENTS = 1

Столкновения будут включать только края полигона. В этом режиме узел имеет тот же эффект, что и один ConcavePolygonShape2D, состоящий из сегментов, с ограничением, что каждый сегмент (после первого) начинается там, где заканчивается предыдущий, а последний заканчивается там, где начинается первый (образуя замкнутый, но полый полигон).


Описания свойств

BuildMode build_mode = 0 🔗

Режим построения столкновений.


bool disabled = false 🔗

  • void set_disabled(value: bool)

  • bool is_disabled()

Если true, столкновения не будут обнаружены. Это свойство следует изменить с помощью Object.set_deferred().


bool one_way_collision = false 🔗

  • void set_one_way_collision(value: bool)

  • bool is_one_way_collision_enabled()

Если true, только ребра, обращенные вверх относительно поворота CollisionPolygon2D, будут сталкиваться с другими объектами.

Примечание: Это свойство не имеет эффекта, если этот CollisionPolygon2D является дочерним узлом Area2D.


float one_way_collision_margin = 1.0 🔗

  • void set_one_way_collision_margin(value: float)

  • float get_one_way_collision_margin()

Поле, используемое для одностороннего столкновения (в пикселях). Более высокие значения сделают форму толще и будут лучше работать для коллайдеров, которые входят в полигон на высокой скорости.


PackedVector2Array polygon = PackedVector2Array() 🔗

Список вершин полигона. Каждая точка будет соединена со следующей, а последняя точка будет соединена с первой.

Примечание: Возвращаемые вершины находятся в локальном координатном пространстве заданного CollisionPolygon2D.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.