CollisionPolygon2D
继承: Node2D < CanvasItem < Node < Object
向 CollisionObject2D 父级提供多边形形状的节点。
描述
一个节点,为 CollisionObject2D 父级提供多边形形状并允许对其进行编辑。该多边形可以是凹的或凸的。这可以为 Area2D 提供检测形状,将 PhysicsBody2D 变成实体对象,或为 StaticBody2D 提供空心形状。
警告:非均匀缩放的 CollisionShape2D 可能不会按预期运行。请确保在所有轴上保持其缩放相同,可改为调整其形状资源。
属性
| ||
| ||
| ||
| ||
|
枚举
enum BuildMode: 🔗
BuildMode BUILD_SOLIDS = 0
碰撞包含多边形及其内部区域。在这个模式下,该节点的效果与使用若干 ConvexPolygonShape2D 节点相同,其中的每个节点都包含该多边形凸分解后的凸形状(但不会有使用多个节点的负担)。
BuildMode BUILD_SEGMENTS = 1
碰撞经包含多边形的边缘。在这个模式下,该节点的效果与单个由若干线段组成的 ConcavePolygonShape2D 相同,其中(第一条以后的)每条线段都从上一条的终点开始,最后一条线段在第一条的起点结束(构成闭合但中空的多边形)。
属性说明
碰撞构建模式。使用 BuildMode 常量之一。
如果为 true
,则不会检测到碰撞。
bool one_way_collision = false
🔗
如果为 true
,则只有面朝上的边缘才会与其他对象发生碰撞,方向是相对于 CollisionPolygon2D 的旋转而言的。
注意:如果这个 CollisionPolygon2D 是 Area2D 节点的子节点,则这个属性无效。
float one_way_collision_margin = 1.0
🔗
用于单向碰撞的边距(以像素为单位)。较高的值将使形状更厚,并且对于以高速进入多边形的对撞机来说效果更好。
PackedVector2Array polygon = PackedVector2Array()
🔗
void set_polygon(value: PackedVector2Array)
PackedVector2Array get_polygon()
多边形的顶点列表。每个点都与下一个点相连,最后一个点与第一个点相连。
注意:返回的顶点位于给定的 CollisionPolygon2D 的局部坐标空间中。
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.