origin | The starting point of the ray in world coordinates. |
direction | Направление луча. |
maxDistance | The max distance the ray should check for collisions. |
layerMask | A Layer mask that is used to selectively ignore Colliders when casting a ray. |
queryTriggerInteraction | Specifies whether this query should hit Triggers. |
bool @return True если луч пересекся хотя-бы с одним коллайдером,в ином случае - false.
Casts a ray, from point origin
, in direction direction
, of length maxDistance
, against all colliders in the scene.
You may optionally provide a LayerMask, to filter out any Colliders you aren't interested in generating collisions with.
Specifying queryTriggerInteraction
allows you to control whether or not Trigger colliders generate a hit, or whether to use the global Physics.queriesHitTriggers setting.
This example creates a simple Raycast, projecting forwards from the position of the object's current position, extending for 10 units.
using UnityEngine;
public class ExampleClass : MonoBehaviour { void FixedUpdate() { Vector3 fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, 10)) print("There is something in front of the object!"); } }
Notes: Raycasts will not detect Colliders for which the Raycast origin is inside the Collider.
origin | The starting point of the ray in world coordinates. |
direction | Направление луча. |
hitInfo | If true is returned, hitInfo will contain more information about where the collider was hit. (See Also: RaycastHit). |
maxDistance | The max distance the ray should check for collisions. |
layerMask | A Layer mask that is used to selectively ignore colliders when casting a ray. |
queryTriggerInteraction | Specifies whether this query should hit Triggers. |
bool @return True если луч пересекся хотя-бы с одним коллайдером,в ином случае - false.
Casts a ray against all colliders in the scene and returns detailed information on what was hit.
This example reports the distance between the current object and the reported Collider:
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); } }
This example re-introduces the maxDistance
parameter to limit how far ahead to cast the Ray:
using UnityEngine;
public class RaycastExample : MonoBehaviour { void FixedUpdate() { RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0f)) print("Found an object - distance: " + hit.distance); } }
ray | @param ray Начальная точка и направление луча. |
maxDistance | The max distance the ray should check for collisions. |
layerMask | A Layer mask that is used to selectively ignore colliders when casting a ray. |
queryTriggerInteraction | Specifies whether this query should hit Triggers. |
bool @return True если луч пересекся хотя-бы с одним коллайдером,в ином случае - false.
Same as above using ray.origin
and ray.direction
instead of origin
and direction
.
using UnityEngine;
public class ExampleClass : MonoBehaviour { void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, 100)) print("Hit something!"); } }
ray | @param ray Начальная точка и направление луча. |
hitInfo | If true is returned, hitInfo will contain more information about where the collider was hit. (See Also: RaycastHit). |
maxDistance | The max distance the ray should check for collisions. |
layerMask | A Layer mask that is used to selectively ignore colliders when casting a ray. |
queryTriggerInteraction | Specifies whether this query should hit Triggers. |
bool @return True если луч пересекся хотя-бы с одним коллайдером,в ином случае - false.
Same as above using ray.origin
and ray.direction
instead of origin
and direction
.
This example draws a line along the length of the Ray whenever a collision is detected:
using UnityEngine;
public class ExampleClass : MonoBehaviour { void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100)) Debug.DrawLine(ray.origin, hit.point); } }