SpringArm
Inherits: Spatial < Node < Object
辅助节点,主要用于第三人称相机。
描述
SpringArm节点是沿其Z轴投射射线(或碰撞形状)的节点,并将其所有的直接子节点移动到碰撞点,减去边距。
最常见的使用情况是制作第三人称相机,对环境中的碰撞做出反应。
SpringArm将投射一条射线,或者给出形状,它将在其Z轴的方向上投射该形状。
如果你使用SpringArm作为玩家的相机控制器,你可能需要将玩家的碰撞器排除在SpringArm的碰撞检查之外。
属性
| ||
| ||
|
方法
void | add_excluded_object ( RID RID ) |
void | |
get_hit_length ( ) | |
remove_excluded_object ( RID RID ) |
属性说明
- int collision_mask
Default |
|
Setter | set_collision_mask(value) |
Getter | get_collision_mask() |
The layers against which the collision check shall be done. See Collision layers and masks in the documentation for more information.
- float margin
Default |
|
Setter | set_margin(value) |
Getter | get_margin() |
进行碰撞检查时,会给出 SpringArm 的候选长度。
然后将边距减去此长度,并将平移应用于 SpringArm 的子对象。
当 SpringArm 将 Camera 作为子节点时,此边距很有用:没有边距,Camera 将放置在碰撞的确切点上,而有边距时,Camera 将放置在靠近碰撞点。
- Shape shape
Setter | set_shape(value) |
Getter | get_shape() |
用于 SpringArm 的 Shape 形状。
当形状被设置时,SpringArm 将在其 Z 轴上投射 Shape,而不是执行光线投射。
- float spring_length
Default |
|
Setter | set_length(value) |
Getter | get_length() |
SpringArm 的最大范围。这用作内部使用的光线和形状投射的长度,以计算 SpringArm 子节点的所需位置。
要了解有关如何执行形状投射或光线投射的更多信息,请参阅 PhysicsDirectSpaceState 文档。
方法说明
- void add_excluded_object ( RID RID )
将具有指定 RID 的 PhysicsBody 对象添加到排除在碰撞检查之外的 PhysicsBody 对象列表中。
- void clear_excluded_objects ( )
清除从碰撞检查中排除的 PhysicsBody 对象列表。
- float get_hit_length ( )
返回弹簧臂的当前长度。
从碰撞检查排除的 PhysicsBody 对象列表中删除指定的 RID。