Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo)
using UnityEngine;
public class ExampleClass : MonoBehaviour {
private RaycastHit hit;
void Update ()
{
if (Physics.Raycast(transform.position, transform.forward, out hit))
{
Debug.Log("hit point : " + hit.point + ", distance : " + hit.distance + ", name : " + hit.collider.name);
Debug.DrawRay(transform.position, transform.forward * hit.distance, Color.red);
}
else
{
Debug.DrawRay(transform.position, transform.forward * 1000f, Color.red);
}
}
}
Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance)
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
// See Order of Execution for Event Functions for information on FixedUpdate() and Update() related to physics queries
void FixedUpdate()
{
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, 10))
print("There is something in front of the object!");
}
}
Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask)
using UnityEngine;
public class RaycastExample : MonoBehaviour
{
// See Order of Execution for Event Functions for information on FixedUpdate() and Update() related to physics queries
void FixedUpdate()
{
RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0f))
print("Found an object - distance: " + hit.distance);
}
}
Physics.Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance)
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
// See Order of Execution for Event Functions for information on FixedUpdate() and Update() related to physics queries
void FixedUpdate()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
Debug.DrawLine(ray.origin, hit.point);
}
}