ConcavePolygonShape3D

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

Трехмерная сетка, используемая для физики столкновений.

Описание

Трехмерная тримеш-форма, предназначенная для использования в физике. Обычно используется для предоставления формы для CollisionShape3D.

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

Примечание: При использовании для столкновений ConcavePolygonShape3D предназначен для работы со статическими узлами CollisionShape3D, такими как StaticBody3D, и, скорее всего, не будет хорошо себя вести для CharacterBody3D или RigidBody3D в режиме, отличном от Static.

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

Производительность: Из-за своей сложности ConcavePolygonShape3D является самой медленной 3D-формой столкновений для проверки столкновений. Ее использование, как правило, должно быть ограничено геометрией уровня. Для выпуклой геометрии следует использовать ConvexPolygonShape3D. Для динамических физических тел, которым требуется вогнутое столкновение, можно использовать несколько ConvexPolygonShape3D для представления его столкновения с помощью выпуклого разложения; см. документацию ConvexPolygonShape3D для получения инструкций.

Обучающие материалы

Свойства

bool

backface_collision

false

Методы

PackedVector3Array

get_faces() const

void

set_faces(faces: PackedVector3Array)


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

bool backface_collision = false 🔗

  • void set_backface_collision_enabled(value: bool)

  • bool is_backface_collision_enabled()

Если установлено значение true, столкновения происходят по обе стороны граней вогнутой формы. В противном случае они происходят только вдоль нормалей граней.


Описания метода

PackedVector3Array get_faces() const 🔗

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


void set_faces(faces: PackedVector3Array) 🔗

Устанавливает грани формы тримеша (trimesh) из массива вершин. Массив faces должен состоять из троек таким образом, чтобы каждая тройка вершин определяла треугольник.