ConcavePolygonShape3D

继承: Shape3D < Resource < RefCounted < Object

用于物理碰撞的3D三角形。

描述

一种三维三角形,用于物理学。通常用于为ColliderShape提供形状。

ConcavePolygonShape3D只是相互连接的三角形的集合,是最自由配置的单一3D形状。它可以用来形成任何性质的多面体,甚至不包围体积的形状。然而,ConcavePolygonShape3D空心的,即使相互连接的三角形确实包围了一个体积,这通常使其不适合物理或检测。

注意:当用于碰撞时,ConcavePolygonShape3D旨在与静态ColliderShape节点(如StaticBulk)一起工作,并且在静态以外的模式下可能无法很好地处理CharacterBulkRigidBulk

警告:小物理体在快速移动时有机会穿过这个形状。这是因为在一帧中,物理体可能在形状的“外部”,在下一帧中,它可能在形状的“内部”。ConcavePolygonShape3D是中空的,所以它不会检测到碰撞。

性能:由于其复杂性,ConcavePolygonShape3D是检查碰撞的最慢的3D碰撞形状。它的使用一般应限于水平几何。对于凸几何,应使用ConvexPolygonShape3D。对于需要凹碰撞的动态物理体,可以使用几个ConvexPolygonShape3D来表示其碰撞,使用凸分解;参见ConvexPolygonShape3D的文档说明。

属性

方法


属性说明

bool backface_collision = false 🔗

  • void set_backface_collision_enabled(value: bool)

  • bool is_backface_collision_enabled()

如果设置为true,则在凹面的两侧发生碰撞。否则它们仅沿面法线发生。


方法说明

PackedVector3Array get_faces() const 🔗

以顶点数组的形式返回三角形的面。数组(长度可被三整除)自然分为三元组;每个三元组的顶点定义一个三角形。


void set_faces(faces: PackedVector3Array) 🔗

从顶点数组中设置三角形的面。faces数组应由三元组组成,以便每个三元组的顶点定义一个三角形。