SpringArm3D
能够动态地将子节点朝碰撞点移动的 3D 射线投射。
描述
SpringArm3D 会朝它的 Z 轴投射射线或形状,并将所有直接子节点朝碰撞点移动,可以保留一定的边距。可用于第三人称相机,让其在狭窄空间中朝玩家移动(你可能需要在 SpringArm3D 的碰撞检查中排除玩家的碰撞体)。
属性
| ||
| ||
|
方法
void | add_excluded_object(RID: RID) |
void | |
remove_excluded_object(RID: RID) |
属性说明
碰撞检测的目标层。更多信息请参阅文档中的《碰撞层与遮罩》。
进行碰撞检测时,会给出 SpringArm3D 的一个候选长度。
然后将边距减去该长度,并将该平移应用于该 SpringArm3D 的子对象。
当 SpringArm3D 有一个 Camera3D 作为子节点时,该边距很有用:如果没有边距,该 Camera3D 将被放置在准确的碰撞点上;而有边距时,该 Camera3D 将被放置在靠近碰撞点的地方。
用于该 SpringArm3D 的 Shape3D。
当该形状被设置后,SpringArm3D 将在其 z 轴上投射该 Shape3D,而不是执行一个射线投射。
SpringArm3D 的最大范围。这用作内部使用的射线和形状投射的长度,以计算 SpringArm3D 子节点的所需位置。
要了解有关如何执行形状投射或射线投射的更多信息,请参阅 PhysicsDirectSpaceState3D 文档。
方法说明
void add_excluded_object(RID: RID) 🔗
将具有给定 RID 的 PhysicsBody3D 对象,添加到从碰撞检查中排除的 PhysicsBody3D 对象列表中。
void clear_excluded_objects() 🔗
清空碰撞检测排除 PhysicsBody3D 对象的列表。
返回弹簧臂的当前长度。
bool remove_excluded_object(RID: RID) 🔗
从碰撞检测排除 PhysicsBody3D 对象的列表中移除给定的 RID。