OnSceneGUI에서 클릭한 좌표 가져오는 방법

계속 엉뚱한 좌표를 가져와서 잠시 삽질했지만 아래 방법으로 해결했다..
Event.current.mousePosition에서 EditorGUIUtility.pixelsPerPoint를 곱해줘야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void OnSceneGUI()
{
    if (Event.current.type != EventType.MouseDown || Event.current.button != 0return;
 
    var mousePosition = Event.current.mousePosition * EditorGUIUtility.pixelsPerPoint;
    mousePosition.y = Camera.current.pixelHeight - mousePosition.y;
 
    var Ray = Camera.current.ScreenPointToRay(mousePosition);
 
    if (Physics.Raycast(Ray, out RaycastHit hit))
    {
         //클릭한 곳의 좌표 hit.point
         item.transform.position = hit.point;
    }
}
cs

댓글

가장 많이 본 글