RayCast
이 문서는 Udemy의 ‘RPG Core Combat Creator’ 강의를 보고 배운 점을 적은 것입니다.
RayCast
한 지점에서 특정 방향으로 Ray를 쏴서, 충돌을 체크하는 방법
void MoveToCursor()
{
// 스크린좌표에서 카메라의 방향으로 Ray 만든다.
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// 레이케스트의 결과를 저장할 RaycastHit 구조체
RaycastHit hit;
// Ray 와 RaycastHit을 가지고 충돌 여부를 체크한다. 이때 충돌 여부로 bool 값을 반환함. 또한, RaycastHit은 out 키워드를 적어줘야한다.
bool hasHit = Physics.Raycast(ray, out hit);
// 만약 충돌했다면
if (hasHit)
{
// NavMeshAgent의 목적지를 충돌 지점으로 정한다.
// 즉 화면에서 클릭한 곳으로 움직이게 하는 것
GetComponent<UnityEngine.AI.NavMeshAgent>().destination = hit.point;
}
}
##