RayCast3D

Inherits: Node3D < Node < Object

A ray in 3D space, used to find the first CollisionObject3D it intersects.

Description

A raycast represents a ray from its origin to its target_position that finds the closest CollisionObject3D along its path, if it intersects any. This is useful for a lot of things, such as

RayCast3D can ignore some objects by adding them to an exception list, by making its detection reporting ignore Area3Ds (collide_with_areas) or PhysicsBody3Ds (collide_with_bodies), or by configuring physics layers.

RayCast3D calculates intersection every physics frame, and it holds the result until the next physics frame. For an immediate raycast, or if you want to configure a RayCast3D multiple times within the same physics frame, use force_raycast_update.

To sweep over a region of 3D space, you can approximate the region with multiple RayCast3Ds or use ShapeCast3D.

Tutorials

Properties

bool

collide_with_areas

false

bool

collide_with_bodies

true

int

collision_mask

1

Color

debug_shape_custom_color

Color(0, 0, 0, 1)

int

debug_shape_thickness

2

bool

enabled

true

bool

exclude_parent

true

bool

hit_back_faces

true

bool

hit_from_inside

false

Vector3

target_position

Vector3(0, -1, 0)

Methods

void

add_exception ( CollisionObject3D node )

void

add_exception_rid ( RID rid )

void

clear_exceptions ( )

void

force_raycast_update ( )

Object

get_collider ( ) const

RID

get_collider_rid ( ) const

int

get_collider_shape ( ) const

int

get_collision_face_index ( ) const

bool

get_collision_mask_value ( int layer_number ) const

Vector3

get_collision_normal ( ) const

Vector3

get_collision_point ( ) const

bool

is_colliding ( ) const

void

remove_exception ( CollisionObject3D node )

void

remove_exception_rid ( RID rid )

void

set_collision_mask_value ( int layer_number, bool value )


Property Descriptions

bool collide_with_areas = false

  • void set_collide_with_areas ( bool value )

  • bool is_collide_with_areas_enabled ( )

If true, collisions with Area3Ds will be reported.


bool collide_with_bodies = true

  • void set_collide_with_bodies ( bool value )

  • bool is_collide_with_bodies_enabled ( )

If true, collisions with PhysicsBody3Ds will be reported.


int collision_mask = 1

  • void set_collision_mask ( int value