origin | El punto inicial del rayo en coordenadas del mundo. |
direction | La dirección del rayo. |
maxDistance | La distancia máxima que el rayo debería revisar por colisiones. |
layerMask | Un Layer mask que es utilizado para ignorar selectivamente los Colliders cuando se emita un rayo. |
queryTriggerInteraction | Especifica si esta consulta debería golpear Triggers. |
bool True si el rayo intersecta con un Collider, de lo contrario false.
Emite un rayo, desde un punto origin
, en dirección direction
, de longitud maxDistance
, contra todos los colliders en la escena.
Usted puede opcionalmente proporcionar una LayerMask, para filtrar cualquier otro Collider que no le interese que genere colisiones.
Especificar queryTriggerInteraction
le permite a usted controlar si o no los Trigger colliders generan un hit (toque/golpe), o si se utiliza el ajuste global Physics.queriesHitTriggers.
Este ejemplo crea un Raycast simple, que proyecta hacia adelante desde la posición actual del objeto y se extiende 10 unidades.
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!"); } }
Notas: Los Raycasts no detectarán Colliders que tengan el origen del Raycast dentro del Collider.
origin | El punto inicial del rayo en coordenadas del mundo. |
direction | La dirección del rayo. |
hitInfo | If true is returned, hitInfo will contain more information about where the collider was hit. (See Also: RaycastHit). |
maxDistance | La distancia máxima que el rayo debería revisar por colisiones. |
layerMask | Un Layer mask que es utilizado para ignorar colliders selectivamente cuando se emita un rayo. |
queryTriggerInteraction | Especifica si esta consulta debería golpear Triggers. |
bool True cuando el rayo intersecta cualquier collider, de lo contrario false.
Emite un rayo contra todos los colliders en la escena y devuelve información detallada sobre qué fue golpeado.
Este ejemplo reporta la distancia entre el objeto actual y el Collider reportado:
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); } }
Este ejemplo re-introduce el parámetro maxDistance
para limitar qué tan lejos para emitir el Ray (rayo):
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 | El punto inicial y la dirección del rayo. |
maxDistance | La distancia máxima que el rayo debería revisar por colisiones. |
layerMask | Un Layer mask que es utilizado para ignorar colliders selectivamente cuando se emita un rayo. |
queryTriggerInteraction | Especifica si esta consulta debería golpear Triggers. |
bool True cuando el rayo intersecta cualquier collider, de lo contrario false.
Lo mismo que arriba utilizando ray.origin
y ray.direction
en vez de origin
y 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 | El punto inicial y la dirección del rayo. |
hitInfo | If true is returned, hitInfo will contain more information about where the collider was hit. (See Also: RaycastHit). |
maxDistance | La distancia máxima que el rayo debería revisar por colisiones. |
layerMask | Un Layer mask que es utilizado para ignorar colliders selectivamente cuando se emita un rayo. |
queryTriggerInteraction | Especifica si esta consulta debería golpear Triggers. |
bool True cuando el rayo intersecta cualquier collider, de lo contrario false.
Lo mismo que arriba utilizando ray.origin
y ray.direction
en vez de origin
y direction
.
Este ejemplo dibuja una linea a lo largo de la longitud del Rayo cuando una colisión se detecta:
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); } }