본문 바로가기
게임 개발/Unity3D

[Unity | 유니티] 스크린 좌표를 월드 좌표, NGUI 좌표로 전환하기

by 불타는홍당무 2019. 9. 10.

스크린 좌표를 월드 좌표, NGUI 좌표로 전환하기

  • 마우스 터치 인풋의 좌표를 게임 상의 월드 좌표와 NGUI 좌표로 변환할 사용한다.
  • 기준 해상도는 게임 제작 정한 표준 해상도를 의미한다.

//기준 해상도 standardWidth=1280f, standardHeight=720f

Debug.Log("Standard Width:" + standardWidth + " Standard Height:" + standardHeight);

//현재 스크린 해상도

Debug.Log("Screen width:" + Screen.width + " height:" + Screen.height);

 

//스크린 좌표를 월드 좌표로 변환하기

var mousePos = Input.mousePosition;

Debug.Log("Mouse PosX:" + mousePos.x + " PosY:" + mousePos.y);

var worldPos = Camera.main.ScreenToWorldPoint(mousePos);

 Debug.Log("World PosX:" + worldPos.x + " PosY:" + worldPos.y);

 

//스크린 좌표를 NGUI 좌표로 변환하기

var touchPos = UICamera.currentTouch.pos;

Debug.Log("Touch PosX:" + touchPos.x + " PosY:" + touchPos.y);

var nguiPosX = (touchPos.x - Screen.width / 2) * (standardWidth / Screen.width);

var nguiPosY = (touchPos.y - Screen.height / 2) * (standardHeight / Screen.height);

Debug.Log("nguiPos PosX:" + nguiPos.x + " PosY:" + nguiPos.y);