less than 1 minute read

이 문서는 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;
        }
    }

##