SpringArm

Inherits: Spatial < Node < Object

辅助节点,主要用于第三人称相机。

描述

SpringArm节点是沿其Z轴投射射线(或碰撞形状)的节点,并将其所有的直接子节点移动到碰撞点,减去边距。

最常见的使用情况是制作第三人称相机,对环境中的碰撞做出反应。

SpringArm将投射一条射线,或者给出形状,它将在其Z轴的方向上投射该形状。

如果你使用SpringArm作为玩家的相机控制器,你可能需要将玩家的碰撞器排除在SpringArm的碰撞检查之外。

属性

int

collision_mask

1

float

margin

0.01

Shape

shape

float

spring_length

1.0

方法

void

add_excluded_object ( RID RID )

void

clear_excluded_objects ( )

float

get_hit_length ( )

bool

remove_excluded_object ( RID RID )

属性说明

  • int collision_mask

Default

1

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.


Default

0.01

Setter

set_margin(value)

Getter

get_margin()

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

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

当 SpringArm 将 Camera 作为子节点时,此边距很有用:没有边距,Camera 将放置在碰撞的确切点上,而有边距时,Camera 将放置在靠近碰撞点。


Setter

set_shape(value)

Getter

get_shape()

用于 SpringArm 的 Shape 形状。

当形状被设置时,SpringArm 将在其 Z 轴上投射 Shape,而不是执行光线投射。


Default

1.0

Setter

set_length(value)

Getter

get_length()

SpringArm 的最大范围。这用作内部使用的光线和形状投射的长度,以计算 SpringArm 子节点的所需位置。

要了解有关如何执行形状投射或光线投射的更多信息,请参阅 PhysicsDirectSpaceState 文档。

方法说明

  • void add_excluded_object ( RID RID )

将具有指定 RIDPhysicsBody 对象添加到排除在碰撞检查之外的 PhysicsBody 对象列表中。


  • void clear_excluded_objects ( )

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


  • float get_hit_length ( )

返回弹簧臂的当前长度。


  • bool remove_excluded_object ( RID RID )

从碰撞检查排除的 PhysicsBody 对象列表中删除指定的 RID