CSGPolygon3D
继承: CSGPrimitive3D < CSGShape3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
拉伸 2D 多边形形状以创建 3D 网格。
描述
挤出一组 2D 点,以快速轻松地创建各种 3D 网格。另请参阅 CSGMesh3D,以了解将 3D 网格用作 CSG 节点。
注意:CSG 节点旨在用于关卡原型设计。与使用 PrimitiveMesh 创建 MeshInstance3D 相比,创建 CSG 节点具有显著的 CPU 成本。在另一个 CSG 节点中,移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。
教程
属性
| ||
| ||
| ||
| ||
枚举
enum Mode: 🔗
Mode MODE_DEPTH = 0
polygon 形状沿负 Z 轴挤出。
Mode MODE_SPIN = 1
polygon 形状通过围绕 Y 轴旋转来挤出。
Mode MODE_PATH = 2
polygon 形状沿 path_node 中指定的 Path3D 挤出。
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 为MODE_PATH 时,默认情况下,material 的上半部分会沿着挤出形状的整个长度被拉伸。如果为 false
,挤出的每一步都会重复材质的上半部分。
当 mode 为 MODE_PATH 时,路径间隔或路径点比例挤出。
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
,则该 CSGPolygon3D 的 Transform3D 将被用作挤出的起点,而非 path_node 的 Transform3D。
当 mode 为 MODE_PATH 时,用于挤出 polygon 的 Path3D 对象的位置。
PathRotation path_rotation 🔗
void set_path_rotation(value: PathRotation)
PathRotation get_path_rotation()
当 mode 为 MODE_PATH 时,用于在挤出时旋转 polygon 的路径旋转方法。
当 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
,则对挤出应用平滑着色。
当 mode 为 MODE_SPIN,polygon 在挤出时旋转的总度数。