raycast로 앞에 있는 물체 파악하기
void Update()
{
Vector3 look = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red);
RaycastHit hit;
if (Physics.Raycast(transform.position + Vector3.up, look, out hit, 10))
{
Debug.Log($"Raycast {hit.collider.gameObject.name} !");
}
}
뒤에 있는 큐브 2까지 탐색하고 싶다면?
배열을 이용한다!
void Update()
{
Vector3 look = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red);
RaycastHit[] hits;
hits = Physics.RaycastAll(transform.position + Vector3.up, look, 10);
foreach(RaycastHit hit in hits)
{
Debug.Log($"Raycast {hit.collider.gameObject.name} !");
}
}
❗ raycast를 활용할 수 있는 곳 ❗
카메라와 캐릭터 사이에 장애물이 있을 경우
raycast를 이용해 탐색해서 캐릭터를 가리지 않도록 할 수 있다.