RayCast

Query the closest object intersecting a ray.

A RayCast represents a line from its origin to its destination position, cast_to. It is used to query the 3D space in order to find the closest object along the path of the ray. RayCast can ignore some objects by adding them to the exception list via add_exception or by setting proper filtering with collision layers and masks. RayCast can be configured to report collisions with Areas (collideWithAreas) and/or PhysicsBodys (collideWithBodies). Only enabled raycasts will be able to query the space and report collisions. RayCast calculates intersection every physics frame (see Node), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame), use forceRaycastUpdate after adjusting the raycast.

@GodotBaseClass
struct RayCast {}

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Functions

addException
void addException(GodotObject node)

Adds a collision exception so the ray does not report collisions with the specified node.

addExceptionRid
void addExceptionRid(RID rid)

Adds a collision exception so the ray does not report collisions with the specified RID.

clearExceptions
void clearExceptions()

Removes all collision exceptions for this ray.

forceRaycastUpdate
void forceRaycastUpdate()

Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next _physics_process call, for example if the ray or its parent has changed state. Note: enabled is not required for this to work.

getCastTo
Vector3 getCastTo()
getCollider
GodotObject getCollider()

Returns the first object that the ray intersects, or null if no object is intersecting the ray (i.e. isColliding returns false).

getColliderShape
long getColliderShape()

Returns the shape ID of the first object that the ray intersects, or 0 if no object is intersecting the ray (i.e. isColliding returns false).

getCollisionMask
long getCollisionMask()
getCollisionMaskBit
bool getCollisionMaskBit(long bit)

Returns true if the bit index passed is turned on. Note: Bit indices range from 0-19.

getCollisionNormal
Vector3 getCollisionNormal()

Returns the normal of the intersecting object's shape at the collision point.

getCollisionPoint
Vector3 getCollisionPoint()

Returns the collision point at which the ray intersects the closest object. Note: This point is in the global coordinate system.

getExcludeParentBody
bool getExcludeParentBody()
isCollideWithAreasEnabled
bool isCollideWithAreasEnabled()
isCollideWithBodiesEnabled
bool isCollideWithBodiesEnabled()
isColliding
bool isColliding()

Returns whether any object is intersecting with the ray's vector (considering the vector length).

isEnabled
bool isEnabled()
opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(RayCast other)
opEquals
bool opEquals(typeof(null) n)
removeException
void removeException(GodotObject node)

Removes a collision exception so the ray does report collisions with the specified node.

removeExceptionRid
void removeExceptionRid(RID rid)

Removes a collision exception so the ray does report collisions with the specified RID.

setCastTo
void setCastTo(Vector3 local_point)
setCollideWithAreas
void setCollideWithAreas(bool enable)
setCollideWithBodies
void setCollideWithBodies(bool enable)
setCollisionMask
void setCollisionMask(long mask)
setCollisionMaskBit
void setCollisionMaskBit(long bit, bool value)

Sets the bit index passed to the value passed. Note: Bit indexes range from 0-19.

setEnabled
void setEnabled(bool enabled)
setExcludeParentBody
void setExcludeParentBody(bool mask)
toHash
size_t toHash()

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

castTo
Vector3 castTo [@property getter]
Vector3 castTo [@property setter]

The ray's destination point, relative to the RayCast's position.

collideWithAreas
bool collideWithAreas [@property getter]
bool collideWithAreas [@property setter]

If true, collision with Areas will be reported.

collideWithBodies
bool collideWithBodies [@property getter]
bool collideWithBodies [@property setter]

If true, collision with PhysicsBodys will be reported.

collisionMask
long collisionMask [@property getter]
long collisionMask [@property setter]

The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See url=https://docs.godotengine.org/en/3.3/tutorials/physics/physics_introduction.html#collision-layers-and-masksCollision layers and masks/url in the documentation for more information.

enabled
bool enabled [@property getter]
bool enabled [@property setter]

If true, collisions will be reported.

excludeParent
bool excludeParent [@property getter]
bool excludeParent [@property setter]

If true, collisions will be ignored for this RayCast's immediate parent.

Static functions

_new
RayCast _new()

Construct a new instance of RayCast. Note: use memnew!RayCast instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Meta