Game Programming/Game Engine

Unity3D :: UGUI UI Position Setting (UGUI UI 위치 설정)

VallistA2016. 5. 20. 10:27

보통 Unity3D의 NGUI를 썻다면 Anchor로 각각의 꼭지점에 붙여서 이용을 하게 될 것이다. 

근데 UGUI에서는 Anchor라는 개념이 Rect Transform 이라는 것으로 병합이 되어 있는데, 이것에 대해서 보도록 하자.


1. Rect Transform


위의 사진처럼 생겼으며, Width, Height 조절이 일반 Transform에 비해서 자유롭고 옵션들이 많이 붙어있는 것을 알 수 있다.


가장 왼쪽 상단의 이상한 레이더 같이 생긴 모양이 있는데 바로 이것이 우리가 사용할 Anchor 이다.



Anchor를 누르게되면 Anchor Presets가 나오며, 방향이 나오게 된다.


총 9가지 방향이 있는데 이 것은 World Position으로써, 부모 Canvas가 화면을 인식하는 크기에 따라서 Anchor 조정에 따라 Anchor를 조정한 오브젝트의 자식 오브젝트들이 전부 영향을 받는다.


2. 예시



Center



Left Top



Right


3. 주의 해야할 사항


Anchor를 바로 적용을 한다고 끝난게 아니라. x,y,z 포지션을 0으로 만들어 주어야 한다. 맨 처음에 변경을 하면 아래와 같이 설정이 된다.



Center에서 right로 변경을 했을 때이다.

이럴때 Pos X 는 Center에서 Right로 옮겨갔는데 -418이 왜 되는 것일까?


기본적으로 월드 좌표에서는 현재 UI의 위치를 기억을 하고 있고, localPosition은 그것에 대해서 World Position의 위치를 기준으로 움직이기 때문에. local Anchor를 바꿔주는 작업으로. 오른쪽 기준으로 좌표를 옮겼기 때문에 localPosition은 기준 좌표가 바뀌고, World Position 위치로 다시 재 설정을 한다.


그렇게 되면 오른쪽 기준으로 봤을때 World Position은 Center였던 값 이므로 이전의 Center 위치인 Right 기준으로 -418 위치가 기존의 위치가 된 것이다.


그렇기 때문에 Pos X, Pos Y는 앵커가 바뀔때마다 값이 바뀌므로 초기화를 해주는 것을 잊으면 안된다.


댓글

댓글쓰기 폼

VallistA

병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.

자고 싶습니다. ㅠㅠ

페이스북    :: 링크
카카오톡    :: kingbye1
Github      :: 링크

궁금한점 문의 주시면 답변드리도록 하겠습니다

VISITED

Today : 19

Total : 411,844

SNS

  • 페이스북아이콘
  • 카카오톡아이콘
  • 트위터아이콘