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, количество выполненных экструзий.