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...
ConcavePolygonShape3D¶
继承: Shape3D < Resource < RefCounted < Object
用于物理碰撞的 3D 三角网格形状。
描述¶
一种用于物理模拟的 3D 三角网格形状。通常用于为 CollisionShape3D 提供形状。
作为一组相互连接的三角形, ConcavePolygonShape3D 是最自由的可配置的单一 3D 形状。它可以用于形成任何性质的多面体,甚至是不封闭体积的形状。然而,即使相互连接的三角形封闭了一个体积, ConvexPolygonShape3D 仍然是中空的,这常常使其不适用于物理模拟或碰撞检测。
注意:当用于碰撞计算时, ConcavePolygonShape3D 旨在与 StaticBody3D 等静态 CollisionShape3D 节点一起使用 。并且对于 CharacterBody3D 或 RigidBody3D,在除静态模式之外的其他模式下可能表现不佳。
警告:较小的物理物体在快速移动时有机会穿过该形状。发生这种情况是因为在一帧上,物理物体可能位于形状的“外部”,而在下一帧上,它可能位于形状的“内部”。由于ConcavePolygonShape3D 是中空的,因此它不会检测到碰撞。
性能:由于其复杂性, ConcavePolygonShape3D 是检测碰撞最慢的 3D 碰撞形状。它的使用一般仅限于关卡几何体。对于凸几何体,应使用 ConvexPolygonShape3D 。对于需要凹碰撞的动态物体,可以使用多个 ConvexPolygonShape3D 通过凸分解来表示其碰撞;相关说明请参阅 ConvexPolygonShape3D 文档。
教程¶
属性¶
|
方法¶
get_faces() const |
|
void |
set_faces(faces: PackedVector3Array) |
属性说明¶
bool backface_collision = false
🔗
如果设置为 true
,则碰撞会发生在凹形面的两侧。否则,它们只会沿着面法线发生。
方法说明¶
PackedVector3Array get_faces() const 🔗
以顶点数组的形式返回三角网格形状中的面。该(长度能被三整除的)数组自然三三分组;每组中的三个顶点定义一个三角形。
void set_faces(faces: PackedVector3Array) 🔗
根据顶点数组设置三角网格形状的面。faces
数组应更多由若干三元组构成,每三个顶点定义一个三角形。