CollisionPolygon2D

继承: Node2D < CanvasItem < Node < Object

CollisionObject2D 父级提供多边形形状的节点。

描述

一个节点,为 CollisionObject2D 父级提供多边形形状并允许对其进行编辑。该多边形可以是凹的或凸的。这可以为 Area2D 提供检测形状,将 PhysicsBody2D 变成实体对象,或为 StaticBody2D 提供空心形状。

警告:非均匀缩放的 CollisionShape2D 可能不会按预期运行。请确保在所有轴上保持其缩放相同,可改为调整其形状资源。

属性

BuildMode

build_mode

0

bool

disabled

false

bool

one_way_collision

false

float

one_way_collision_margin

1.0

PackedVector2Array

polygon

PackedVector2Array()


枚举

enum BuildMode: 🔗

BuildMode BUILD_SOLIDS = 0

碰撞包含多边形及其内部区域。在这个模式下,该节点的效果与使用若干 ConvexPolygonShape2D 节点相同,其中的每个节点都包含该多边形凸分解后的凸形状(但不会有使用多个节点的负担)。

BuildMode BUILD_SEGMENTS = 1

碰撞经包含多边形的边缘。在这个模式下,该节点的效果与单个由若干线段组成的 ConcavePolygonShape2D 相同,其中(第一条以后的)每条线段都从上一条的终点开始,最后一条线段在第一条的起点结束(构成闭合但中空的多边形)。


属性说明

BuildMode build_mode = 0 🔗

碰撞构建模式。使用 BuildMode 常量之一。


bool disabled = false 🔗

  • void set_disabled(value: bool)

  • bool is_disabled()

如果为 true,则不会检测到碰撞。


bool one_way_collision = false 🔗

  • void set_one_way_collision(value: bool)

  • bool is_one_way_collision_enabled()

如果为 true,则只有面朝上的边缘才会与其他对象发生碰撞,方向是相对于 CollisionPolygon2D 的旋转而言的。

注意:如果这个 CollisionPolygon2DArea2D 节点的子节点,则这个属性无效。


float one_way_collision_margin = 1.0 🔗

  • void set_one_way_collision_margin(value: float)

  • float get_one_way_collision_margin()

用于单向碰撞的边距(以像素为单位)。较高的值将使形状更厚,并且对于以高速进入多边形的对撞机来说效果更好。


PackedVector2Array polygon = PackedVector2Array() 🔗

多边形的顶点列表。每个点都与下一个点相连,最后一个点与第一个点相连。

注意:返回的顶点位于给定的 CollisionPolygon2D 的局部坐标空间中。

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.