CollisionPolygon2D
Наследует: Node2D < CanvasItem < Node < Object
Узел, который придает многоугольную форму родительскому объекту CollisionObject2D.
Описание
Узел, который задает форму многоугольника для родительского объекта CollisionObject2D и позволяет его редактировать. Многоугольник может быть вогнутым или выпуклым. Это может придать форму обнаружения объекту Area2D, превратить объект PhysicsBody2D в твердый объект или придать объекту StaticBody2D форму полого объекта.
Предупреждение: Объект CollisionPolygon2D с неравномерным масштабированием, скорее всего, будет вести себя не так, как ожидается. Убедитесь, что его масштаб одинаков по всем осям, и вместо этого отрегулируйте его многоугольник.
Свойства
|
||
|
||
|
||
|
||
|
Перечисления
enum BuildMode: 🔗
BuildMode BUILD_SOLIDS = 0
Столкновения будут включать полигон и его содержащуюся область. В этом режиме узел имеет тот же эффект, что и несколько узлов ConvexPolygonShape2D, по одному для каждой выпуклой формы в выпуклом разложении полигона (но без накладных расходов нескольких узлов).
BuildMode BUILD_SEGMENTS = 1
Столкновения будут включать только края полигона. В этом режиме узел имеет тот же эффект, что и один ConcavePolygonShape2D, состоящий из сегментов, с ограничением, что каждый сегмент (после первого) начинается там, где заканчивается предыдущий, а последний заканчивается там, где начинается первый (образуя замкнутый, но полый полигон).
Описания свойств
Режим построения столкновений.
Если true, столкновения не будут обнаружены. Это свойство следует изменить с помощью Object.set_deferred().
bool one_way_collision = false 🔗
Если true, только ребра, обращенные вверх относительно поворота CollisionPolygon2D, будут сталкиваться с другими объектами.
Примечание: Это свойство не имеет эффекта, если этот CollisionPolygon2D является дочерним узлом Area2D.
float one_way_collision_margin = 1.0 🔗
Поле, используемое для одностороннего столкновения (в пикселях). Более высокие значения сделают форму толще и будут лучше работать для коллайдеров, которые входят в полигон на высокой скорости.
PackedVector2Array polygon = PackedVector2Array() 🔗
void set_polygon(value: PackedVector2Array)
PackedVector2Array get_polygon()
Список вершин полигона. Каждая точка будет соединена со следующей, а последняя точка будет соединена с первой.
Примечание: Возвращаемые вершины находятся в локальном координатном пространстве заданного CollisionPolygon2D.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.