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...
ConcavePolygonShape2D¶
继承: Shape2D < Resource < RefCounted < Object
用于物理碰撞的 2D 多线段形状。
描述¶
一种 2D 折线形状,用于物理运算。当 CollisionPolygon2D 处于 CollisionPolygon2D.BUILD_SEGMENTS 模式时,会在其内部使用。
作为一组相互连接线段,ConcavePolygonShape2D 是最自由的可配置的单一 2D 形状。它可以用于形成任何性质的多边形,甚至是不封闭区域的形状。然而,即使相互连接的线段确实封闭了一个区域,ConcavePolygonShape2D 仍然是中空的,这常常使其不适用于物理模拟或碰撞检测。
注意:当用于碰撞计算时,ConcavePolygonShape2D 旨在与 StaticBody2D 等静态 CollisionShape2D 节点一起使用,并且对于 CharacterBody2D 或 RigidBody2D,在除静态模式之外的其他模式下可能表现不佳。
警告:较小的物理物体在快速移动时有机会穿过该形状。发生这种情况是因为在一帧上,物理物体可能位于形状的“外部”,而在下一帧上,它可能位于形状的“内部”。由于ConcavePolygonShape2D 是中空的,因此它不会检测到碰撞。
性能:由于其复杂性, ConcavePolygonShape2D 是检测碰撞最慢的 2D 碰撞形状。它的使用一般仅限于关卡几何体。如果折线是闭合的,可以使用 CollisionPolygon2D 的 CollisionPolygon2D.BUILD_SOLIDS 模式,它会将多边形分解成凸多边形;相关说明请参阅 ConvexPolygonShape2D 文档。
属性¶
|
属性说明¶
PackedVector2Array segments = PackedVector2Array()
void set_segments ( PackedVector2Array value )
PackedVector2Array get_segments ( )
顶点数组,构成 ConcavePolygonShape2D 的线段。该(长度能被二整除的)数组自然两两分组(每组代表一条线段);每组都由一条线段的起点和终点构成。