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.