유니티 좌표계

Unity3D 2020. 11. 27. 12:19
반응형

유니티의 좌표계는 아래와 같이 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 뿐만 아니라 위의 세 가지 좌표계 모두 서로 변환될 수 있다.

 

참고 : pleasantstep.tistory.com/16

참고 : codesaying.com/understanding-screen-point-world-point-and-viewport-point-in-unity3d/

반응형

'Unity3D' 카테고리의 다른 글

유니티 좌표계  (0) 2020.12.21
랜더링 파이프라인  (0) 2020.12.21
외적 활용 (좌우 알아내기, 문의 앞뒤 알아내기)  (0) 2020.11.25
유도탄 (내적 + 외적)  (0) 2020.11.25
unity skill indicator shader  (0) 2020.11.24
: