Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

ConcavePolygonShape2D

继承: Shape2D < Resource < RefCounted < Object

用于物理碰撞的 2D 多线段形状。

描述

一种 2D 折线形状,用于物理运算。当 CollisionPolygon2D 处于 CollisionPolygon2D.BUILD_SEGMENTS 模式时,会在其内部使用。

作为一组相互连接线段,ConcavePolygonShape2D 是最自由的可配置的单一 2D 形状。它可以用于形成任何性质的多边形,甚至是不封闭区域的形状。然而,即使相互连接的线段确实封闭了一个区域,ConcavePolygonShape2D 仍然是中空的,这常常使其不适用于物理模拟或碰撞检测。

注意:当用于碰撞计算时,ConcavePolygonShape2D 旨在与 StaticBody2D 等静态 CollisionShape2D 节点一起使用,并且对于 CharacterBody2DRigidBody2D,在除静态模式之外的其他模式下可能表现不佳。

警告:较小的物理物体在快速移动时有机会穿过该形状。发生这种情况是因为在一帧上,物理物体可能位于形状的“外部”,而在下一帧上,它可能位于形状的“内部”。由于ConcavePolygonShape2D 是中空的,因此它不会检测到碰撞。

性能:由于其复杂性, ConcavePolygonShape2D 是检测碰撞最慢的 2D 碰撞形状。它的使用一般仅限于关卡几何体。如果折线是闭合的,可以使用 CollisionPolygon2DCollisionPolygon2D.BUILD_SOLIDS 模式,它会将多边形分解成凸多边形;相关说明请参阅 ConvexPolygonShape2D 文档。

属性

PackedVector2Array

segments

PackedVector2Array()


属性说明

PackedVector2Array segments = PackedVector2Array()

顶点数组,构成 ConcavePolygonShape2D 的线段。该(长度能被二整除的)数组自然两两分组(每组代表一条线段);每组都由一条线段的起点和终点构成。