ConcavePolygonShape2D

Наследует: Shape2D < Resource < RefCounted < Object

Двумерная полилиния, используемая для физического столкновения.

Описание

Форма 2D-полилинии, предназначенная для использования в физике. Используется внутри CollisionPolygon2D, когда он находится в режиме CollisionPolygon2D.BUILD_SEGMENTS.

Будучи просто набором взаимосвязанных сегментов линий, ConcavePolygonShape2D является наиболее свободно настраиваемой отдельной 2D-формой. Ее можно использовать для формирования полигонов любой природы или даже форм, которые не охватывают область. Однако ConcavePolygonShape2D является полой, даже если взаимосвязанные сегменты линий охватывают область, что часто делает ее непригодной для физики или обнаружения.

Примечание: При использовании для столкновений ConcavePolygonShape2D предназначен для работы со статическими узлами CollisionShape2D, такими как StaticBody2D, и, скорее всего, не будет хорошо себя вести для CharacterBody2D или RigidBody2D в режиме, отличном от Static.

Предупреждение: Физические тела, которые имеют небольшой размер, имеют шанс прорезать эту форму при быстром движении. Это происходит, потому что в одном кадре физическое тело может находиться «снаружи» формы, а в следующем кадре оно может оказаться «внутри» нее. ConcavePolygonShape2D является полым, поэтому он не обнаружит столкновение.

Производительность: Из-за своей сложности ConcavePolygonShape2D является самой медленной двумерной формой столкновения для проверки столкновений. Его использование, как правило, должно быть ограничено геометрией уровня. Если полилиния замкнута, можно использовать режим CollisionPolygon2D.BUILD_SOLIDS CollisionPolygon2D, который разбивает многоугольник на выпуклые; инструкции см. в документации ConvexPolygonShape2D.

Свойства

PackedVector2Array

segments

PackedVector2Array()


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

PackedVector2Array segments = PackedVector2Array() 🔗

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

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