본문 바로가기

Unity 공부시작

유니티 :: 좌표계

유니티의 좌표계는 아래와 같이 3가지가 있다.


1. World Point


: 실제 gameObject의 transform.position 값


2. Viewport Point


: 카메라 내에서 오브젝트가 위치하고 있는 비율 ( 따라서 값이 0~1 사이의 값으로 나타난다 )


3. Screen Point


: 카메라 내에서 오브젝트의 위치를 해상도를 기준으로 좌표를 매긴 값


ex) 1920 x 1080 해상도에서는 (0, 0) 부터 (1920, 1080) 까지 표현할 수 있다.




즉, World Point 값 x Viewport Point 값 = Screen Point 값이 된다.



* Viewport Point를 활용하면 현재 오브젝트가 화면 내에 나타나지 않을 때 어디에 위치해 있는지 알 수 있다.


x < 0 : 화면 왼쪽

x > 1 : 화면 오른쪽

y < 0 : 화면 아래쪽

y > 1 : 화면 위쪽



* Input.GetMouseButtonDown()는 괄호 안에 0이라면 좌클릭, 1이라면 우클릭일 때 호출되는 함수이다.


위의 함수를 통해 화면 내에 클릭된 곳의 좌표를 가져올 수 있는데, 가져오는 값은 Screen Point로 받아온다.


따라서 이 좌표를 그대로 가져와서 이 위치에 오브젝트를 생성해주는 코드를 짜게되면 원하는 위치에 오브젝트가


생성되지 않는다. ( 좌표를 가져오는 법은 Input.mousePosition 으로 가져올 수 있다 )


Screen Point를 World Point로 바꾸어주면 되는데, 이는 Camera.main.ScreenToWorldPoint(Screen Point)를 통해 가능하다.


다만 이렇게 변환된 World Point는 z 값이 -10f이 되므로, z 값을 0f 으로 바꿔주는 처리가 필요하다. 


위처럼 Screen Point -> World Point 뿐만 아니라 위의 세 가지 좌표계 모두 서로 변환될 수 있다.