[Unity] Camera.main.ScreenPointToRay 의 좌표 변환 과정 이해하기

지즈·2025년 2월 11일
0

Unity

목록 보기
9/17

Camera.main.ScreenPointToRay(Vector3 pos)

화면 좌표를 기반으로 광선을 생성하는 함수로, 주로 마우스 클릭이나 터치 입력을 월드 공간에서 인식하는 데 사용됩니다.
이 기능을 활용하면 스크린에서 클릭한 지점을 3D 월드에서 어떤 오브젝트가 위치하는지 판단할 수 있어, 주로 레이캐스트(raycasting)와 함께 충돌 감지에 사용됩니다.
예를 들어, 유저가 화면을 터치했을 때 해당 위치에 있는 오브젝트를 선택하거나 상호작용하는 기능을 구현할 때 활용됩니다.

동작 원리


매개변수 pos화면 픽셀의 x, y 좌표값입니다. (0, 0) 부터 시작해서 (해상도 가로 - 1, 해상도 세로 - 1)까지의 값을 가집니다. 위 사진에서 주황색 점은 화면 상 (1100, 500) 좌표를 가집니다.



이 함수의 반환 값은 Ray 입니다. Ray 카메라의 near clip plane 에서 시작하여, 월드로 뻗어나갑니다. 즉, 화면에서의 좌표인 posnear clip plane 위의 월드 좌표로 변환되고, 이 점에서 시작되는 Ray 가 생성되는 것입니다. 카메라에서부터 시작되는 게 아닙니다!!

이 때, Ray의 방향은 카메라의 위치에서 near clip plane 의 한 점으로 나아가는 방향입니다.

profile
클라이언트 개발자가 되는 그 날까지 킵 고잉

0개의 댓글