Raycast
Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the Scene.
Read time 3 minutesLast updated 10 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.PhysicsModule
Raycast(Vector3, Vector3, float, int, QueryTriggerInteraction)
Casts a ray, from point , in direction , of length , against all colliders in the Scene.
origindirectionmaxDistancepublic bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Infinity, int layerMask = -5, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal)
Parameters
The starting point of the ray in world coordinates.
The direction of the ray.
The max distance the ray should check for collisions.
A Layer mask that is used to selectively filter which colliders are considered when casting a ray.
Specifies whether this query should hit Triggers.
Returns
Type | Description |
|---|---|
| bool | True if the ray intersects with a Collider, otherwise false. |
Remarks
You may optionally provide a LayerMask, to filter out any Colliders you aren't interested in generating collisions with. Specifying allows you to control whether or not Trigger colliders generate a hit, or whether to use the global Physics.queriesHitTriggers setting.
queryTriggerInteractionThis example creates a simple Raycast, projecting forwards from the position of the object's current position, extending for 10 units.
Examples
using UnityEngine;public class Example : MonoBehaviour{ void FixedUpdate() { // Get the current PhysicsScene PhysicsScene physicsScene = gameObject.scene.GetPhysicsScene(); // Define ray direction and origin Vector3 origin = transform.position; Vector3 direction = transform.TransformDirection(Vector3.forward); // Max ray distance float maxDistance = 10f; // RaycastAll in the current physics scene RaycastHit[] hits = new RaycastHit[10]; // Pre-allocate for performance int hitCount = physicsScene.Raycast(origin, direction, hits, maxDistance); if (hitCount > 0) { Debug.Log($"Detected {hitCount} hit(s) in front of the object:"); for (int i = 0; i < hitCount; i++) { Debug.Log($"Hit {i}: {hits[i].collider.name} at {hits[i].point}"); } } }}
Raycast(Vector3, Vector3, RaycastHit, float, int, QueryTriggerInteraction)
Casts a ray, from point , in direction , of length , against all colliders in the Scene.
origindirectionmaxDistancepublic bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance = Infinity, int layerMask = -5, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal)
Parameters
The starting point of the ray in world coordinates.
The direction of the ray.
If true is returned, will contain more information about where the collider was hit. (Additional Resources: RaycastHit).
hitInfoThe max distance the ray should check for collisions.
A Layer mask that is used to selectively filter which colliders are considered when casting a ray.
Specifies whether this query should hit Triggers.
Returns
Type | Description |
|---|---|
| bool | True if the ray intersects with a Collider, otherwise false. |
Remarks
This method generates no garbage.
Examples
using UnityEngine;public class RaycastExample : MonoBehaviour{ void FixedUpdate() { RaycastHit hit; if (Physics.Raycast(transform.position, -Vector3.up, out hit)) print("Found an object - distance: " + hit.distance); }}
Raycast(Vector3, Vector3, RaycastHit[], float, int, QueryTriggerInteraction)
Casts a ray, from point , in direction , of length , against all colliders in the Scene.
origindirectionmaxDistancepublic int Raycast(Vector3 origin, Vector3 direction, RaycastHit[] raycastHits, float maxDistance = Infinity, int layerMask = -5, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal)
Parameters
The starting point and direction of the ray.
The direction of the ray.
The buffer to store the hits into.
The max distance the rayhit is allowed to be from the start of the ray.
A Layer mask that is used to selectively filter which colliders are considered when casting a ray.
The amount of hits stored into the buffer.
resultsReturns
Type | Description |
|---|---|
| int | True if the ray intersects with a Collider, otherwise false. |
Remarks
This method generates no garbage.