Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
CSGPolygon3D
Наследует: CSGPrimitive3D < CSGShape3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
Выдавливает 2D-многоугольник для создания 3D-сетки.
Описание
Массив 2D-точек выдавливается для быстрого и легкого создания различных 3D-сеток. См. также CSGMesh3D для использования 3D-сеток в качестве узлов CSG.
Примечание: Узлы CSG предназначены для использования при прототипировании уровней. Создание узлов CSG требует значительных затрат ресурсов ЦП по сравнению с созданием MeshInstance3D с PrimitiveMesh. Перемещение узла CSG в пределах другого узла CSG также требует значительных затрат ресурсов ЦП, поэтому его следует избегать во время игры.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
Перечисления
enum Mode: 🔗
Mode MODE_DEPTH = 0
Форма polygon выдавливается вдоль отрицательной оси Z.
Mode MODE_SPIN = 1
Форма polygon выдавливается путем вращения вокруг оси Y.
Mode MODE_PATH = 2
Фигура polygon выдавливается вдоль Path3D, указанного в path_node.
enum PathRotation: 🔗
PathRotation PATH_ROTATION_POLYGON = 0
Форма polygon не повернута.
Примечание: Требует, чтобы координаты Z траектории постоянно уменьшались для обеспечения жизнеспособных форм.
PathRotation PATH_ROTATION_PATH = 1
Фигура polygon вращается вдоль пути, но не вращается вокруг оси пути.
Примечание: Требует, чтобы координаты Z пути постоянно уменьшались для обеспечения жизнеспособных форм.
PathRotation PATH_ROTATION_PATH_FOLLOW = 2
Форма polygon следует траектории и ее вращениям вокруг оси траектории.
enum PathIntervalType: 🔗
PathIntervalType PATH_INTERVAL_DISTANCE = 0
Если mode установлен на MODE_PATH, path_interval будет определять расстояние в метрах, на которое будет выдавливаться каждый интервал пути.
PathIntervalType PATH_INTERVAL_SUBDIVIDE = 1
Если mode установлен на MODE_PATH, path_interval будет подразделять полигоны вдоль пути.
Описания свойств
Если mode равен MODE_DEPTH, глубина выдавливания.
Материал для использования в результирующей сетке. UV сопоставляет верхнюю половину материала с выдавленной формой (U по длине выдавливаний и V вокруг контура polygon), нижнюю левую четверть с передней торцевой поверхностью, а нижнюю правую четверть с задней торцевой поверхностью.
mode, используемый для выдавливания polygon.
Когда mode равен MODE_PATH, по умолчанию верхняя половина material растягивается по всей длине выдавленной формы. Если false, верхняя половина материала повторяется на каждом этапе выдавливания.
Если mode равен MODE_PATH, интервал пути или отношение точек пути к выдавливаниям (extrusions).
PathIntervalType path_interval_type 🔗
void set_path_interval_type(value: PathIntervalType)
PathIntervalType get_path_interval_type()
Если mode равен MODE_PATH, это определит, должен ли интервал быть рассчитан по расстоянию (PATH_INTERVAL_DISTANCE) или по дробям подразделения (PATH_INTERVAL_SUBDIVIDE).
Когда mode равен MODE_PATH, если true, концы пути соединяются путем добавления выдавливания между последней и первой точками пути.
Когда mode равен MODE_PATH, если true, то в качестве начальной точки для выдавливания используется Transform3D из CSGPolygon3D, а не Transform3D из path_node.
Если mode равен MODE_PATH, местоположение объекта Path3D, используемого для выдавливания polygon.
PathRotation path_rotation 🔗
void set_path_rotation(value: PathRotation)
PathRotation get_path_rotation()
Если mode равен MODE_PATH, метод поворота траектории, используемый для поворота polygon при его выдавливании.
Когда mode равен MODE_PATH, если true, многоугольник будет повернут в соответствии с правильной касательной пути в выбранных точках. Если false, используется приближение, точность которого уменьшается по мере уменьшения количества подразделений.
Если mode равен MODE_PATH, выдавливания, которые меньше этого угла, будут объединены вместе для уменьшения количества полигонов.
Когда mode равен MODE_PATH, это расстояние вдоль пути в метрах, координаты текстуры будут замощены. Если установлено значение 0, координаты текстуры будут точно соответствовать геометрии без замощения.
PackedVector2Array polygon = PackedVector2Array(0, 0, 0, 1, 1, 1, 1, 0) 🔗
void set_polygon(value: PackedVector2Array)
PackedVector2Array get_polygon()
Массив точек, определяющий выдавливаемый 2D-полигон. Это может быть выпуклый или вогнутый полигон с 3 или более точками. Полигон не должен иметь пересекающихся ребер. В противном случае триангуляция не будет выполнена, и сетка не будет создана.
Примечание: Если в polygon определены только 1 или 2 точки, сетка не будет создана.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
Если true, к выдавливаниям (extrusions) применяется плавное затенение.
Если mode равен MODE_SPIN, общее число градусов, на которое поворачивается polygon при выдавливании.
Когда mode равен MODE_SPIN, количество выполненных экструзий.