跳到主要内容

RayCast2D

继承

Node2D

简要描述

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

描述

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

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

可以将RayCast2D配置为反馈与Area2Dcollide_with_areas)和/或PhysicsBody2Dcollide_with_bodies)的碰撞。

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

RayCast2D在每个物理帧中计算相交(请参见Node),并将结果缓存起来,以便到下一帧之后可以使用。如果在物理框架之间(或在同一框架期间)需要多个查询,请在调整射线投射后使用force_raycast_update

成员

类型属性名默认值
Vector2cast_toVector2( 0, 50 )
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
Vector2get_collision_normal() const
Vector2get_collision_point() const
boolis_colliding() const
voidremove_exception(node: Object)
voidremove_exception_rid(rid: RID)
voidset_collision_mask_bit(bit: int, value: bool)

常量

成员说明

  • Vector2 cast_to
DefaultVector2( 0, 50 )
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调用,例如,如果射线或其父级的状态已更改。

注意: enabled == 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

返回碰撞掩码上的单个位。


  • 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)

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


  • remove_exception_rid remove_exception_rid(rid: RID)

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


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

设置或清除碰撞掩码上的各个位。