유니티 좌표계
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 |