SpringArm

继承: Item3D < Item < Object

在碰撞点附近动态移动子代的3D光线投射。

描述

SpringArm沿其Z轴投射光线或形状,并将其所有直接子项移动到碰撞点,并带有可选的边距。这对于在狭窄空间内靠近用户的第三人称摄像机很有用(您可能需要从SpringArm的碰撞检查中排除用户的碰撞器)。

属性

方法


属性说明

int collision_mask = 1 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

冲突检查应针对的图层。有关详细信息,请参阅文档中的碰撞图层和掩码


float margin = 0.01 🔗

  • void set_margin(value: float)

  • float get_margin()

进行碰撞检查时,会给出SpringArm3D的候选长度。

然后将边距减去此长度,并将平移应用于SpringArm3D的子对象。

此边距对于SpringArm3D有一个Camera作为子节点时很有用:如果没有边距,Camera将被放置在碰撞点的确切位置,而使用边距,Camera将被放置在碰撞点附近。


Shape3D shape 🔗

用于SpringArm3D的Shape3D

设置形状后,SpringArm3D将在其z轴上投射Shape3D,而不是执行光线投射。


float spring_length = 1.0 🔗

  • void set_length(value: float)

  • float get_length()

SpringArm3D的最大范围。这用作内部用于计算SpringArm3D子节点所需位置的射线和形状转换的长度。

要了解更多关于如何进行形状铸造或光线铸造的信息,请查阅PhysicsDirectSpaceState3D文档。


方法说明

void add_excluded_object(RID: RID) 🔗

将具有给定RIDPhysicsBulkBase对象添加到冲突检查中排除的PhysicsBulkBase对象列表中。


void clear_excluded_objects() 🔗

清除从碰撞检查中排除的PhysicsBulkBase对象列表。


float get_hit_length() 🔗

返回弹簧臂的当前长度。


bool remove_excluded_object(RID: RID) 🔗

从冲突检查中排除的PhysicsBulkBase对象列表中删除给定的RID