유니티 캔버스UI에서 화면 클릭이나 드래그 할때 좌표가 이상해요.

본문 바로가기
사이트 내 전체검색

로그인
회원가입
IT Note

유니티 캔버스UI에서 화면 클릭이나 드래그 할때 좌표가 이상해요.
0

View 3,171  | 작성일2022.04.02 04:30

본문

유니티 캔버스UI 에서 드래그 이벤트를 받아서 이미지를 드래그 시키는 간단한 로직을 구현중에..

 

드래그 이벤트야 using 새게 써주고 클래스에 핸들러 상속만 추가해주면 일이 끝나는데

OnDrag eventData 의 좌표가 이상한겁니다.. 막 날라가고 난리도 아닌데..

 

이 문제는 제가 유니티 UI를 다중 해상도를 적용하기 위해서 해놨던 Canvas 설정에

RenderMode 가 Screen Space - Camera 로 해놨을때 좌표변환이 필요하다는 것을 몰랐습니다.

 

결론적으로 이 문제를 해결하기 위해서는 EventData 에서 나온 포지션을 그대로 쓰면 안되고

그 좌표값을 Camera 에서 월드좌표로 변환을 해줘야 합니다. 

 

즉 좌표를 쓸때 다음과 같은 구문으로 변환을 해주셔야 합니다.

 

 Vector2 currentPos = worldCamera.ScreenToWorldPoint(eventData.position);

 

 

여기서 월드 카메라는 캔버스에서 사용한 메인 카메라를 넣어주시면 되고요.

이렇게 하면 evenData에서 받은 좌표를 화면상의 좌표로 변환을 해주기 때문에 정상적으로 UI상의 좌표로 변환이 됩니다.

댓글목록

등록된 댓글이 없습니다.

IT Tip&Tech 목록

게시물 검색

접속자집계

오늘
1,567
어제
1,819
최대
6,399
전체
884,445
Copyright © LittleCandle All rights reserved.
문의메일 : littlecandle99@gmail.com
모바일 버전으로 보기