跳到主要内容

RayCast

继承

Spatial

简要描述

查询与射线相交的最近对象。

描述

RayCast代表一条从其起点到其目的地位置的直线,即cast_to。它用于查询3D空间,以便沿着射线路径找到最近的对象。

RayCast可以通过add_exception将某些对象添加到例外列表中,或者通过使用碰撞层和掩码设置适当的过滤来忽略某些对象。

可以将RayCast配置为反馈与Areacollide_with_areas)和/或PhysicsBodycollide_with_bodies)的碰撞。

只有启用的RayCast才能查询并反馈碰撞。

RayCast在每个物理帧中计算相交点(请参见Node),并将结果缓存起来,以便到下一帧之后可以使用。

成员

类型属性名默认值
Vector3cast_toVector3( 0, -1, 0 )
boolcollide_with_areasfalse
boolcollide_with_bodiestrue
intcollision_mask1
boolenabledfalse
boolexclude_parenttrue

方法

返回值类型方法名称
voidadd_exception(node: Object)
voidadd_exception_rid(rid: RID)
voidclear_exceptions()
voidforce_raycast_update()
Objectget_collider() const
intget_collider_shape() const
boolget_collision_mask_bit(bit: int) const
Vector3get_collision_normal() const
Vector3get_collision_point() const
boolis_colliding() const
voidremove_exception(node: Object)
voidremove_exception_rid(rid: RID)
voidset_collision_mask_bit(bit: int, value: bool)

常量

成员说明

  • Vector3 cast_to
DefaultVector3( 0, -1, 0 )
setterset_cast_to(value)
getterget_cast_to
  • bool collide_with_areas
Defaultfalse
setterset_collide_with_areas(value)
getteris_collide_with_areas_enabled
  • bool collide_with_bodies
Defaulttrue
setterset_collide_with_bodies(value)
getteris_collide_with_bodies_enabled
  • int collision_mask
Default1
setterset_collision_mask(value)
getterget_collision_mask
  • bool enabled
Defaultfalse
setterset_enabled(value)
getteris_enabled
  • bool exclude_parent
Defaulttrue
setterset_exclude_parent_body(value)
getterget_exclude_parent_body

方法说明

  • add_exception add_exception(node: Object)

添加碰撞异常,因此光线不会反馈与指定节点的碰撞。


  • add_exception_rid add_exception_rid(rid: RID)

添加碰撞异常,因此射线不会反馈与指定的RID碰撞。


  • clear_exceptions clear_exceptions()

删除此射线的所有碰撞例外。


  • force_raycast_update force_raycast_update()

更新射线的碰撞信息。

使用此方法可立即更新碰撞信息,而不是等待下一个_physics_process调用,例如,如果射线或其父级的状态已更改。

注意:启用== true不需要此功能。


  • get_collider get_collider() const

返回光线相交的第一个对象,如果没有对象与光线相交,则返回null(即is_colliding返回false)。


  • get_collider_shape get_collider_shape() const

返回光线相交的第一个对象的形状ID,如果没有对象与光线相交,则返回0(即is_colliding返回false)。


  • get_collision_mask_bit get_collision_mask_bit(bit: int) const

如果所传递的位索引已打开,则返回true

注意:位索引的范围是0-19。


  • get_collision_normal get_collision_normal() const

返回相交对象在碰撞点处的形状的法线。


  • get_collision_point get_collision_point() const

返回光线与最近的对象相交的碰撞点。

注意:该点位于全局坐标系中。


  • is_colliding is_colliding() const

返回是否有任何对象与射线的矢量相交(考虑矢量长度)。


  • remove_exception remove_exception(node: Object)

移除碰撞异常,以便ray确实反馈与指定节点的碰撞。


  • remove_exception_rid remove_exception_rid(rid: RID)

移除碰撞异常,以便射线确实反馈与指定的RID碰撞。


  • set_collision_mask_bit set_collision_mask_bit(bit: int, value: bool)

设置传递给value的位索引。

注意:位索引的范围是0-19。