(유니티 2D) UGUI Canvas 설정
원래 아래 글에 포함시키려고 했는데 글이 생각보다 길어져서 따로 작성합니다.
유니티에서 2D 게임을 만든다고 하면 유료 에셋인 NGUI를 사용하는 경우가 많습니다.
현재 3.11버전까지 나와있던데 104달러나 합니다. 학생이 공부목적으로 사기에는 부담이 되는 금액입니다.
무료 버전도 있습니다만 2.7버전이라 너무 오래되었습니다.
저도 NGUI를 공부한 적이 있었고 2.7버전으로도 해보고 다른 곳에서 양해를 구해 3.8버전의 NGUI를 다뤄보기도 했습니다만 과장 조금 보태서 아예 다른 에셋이라고 생각하고 다루는 법을 익히는게 더 나을 정도로 많이 바뀌었더군요.
그래서 전 무료인 UGUI를 쓰기로 했습니다!
본론으로 들어가서
씬을 새로 만들고 아무거나 UI를 만들면 캔버스와 이벤트 시스템이 자동으로 생깁니다.
캔버스는 말 그대로 UI용 캔버스입니다. 꼭 2D가 아니어도 UI 기능들은 사용할 수 있는데 이렇게 Canvas를 통해 별도의 화면을 가지고 캔버스 내에서 독립적인 배치가 가능합니다. 그리고 기본 설정에선 카메라의 영향을 받지 않아 고정 UI에 아주 적합합니다.
이벤트 시스템은 간단히 말해 UI 관련 기능들을 구현해주는 오브젝트라 보시면 됩니다. 실제로 이벤트 시스템을 도중에 지워버리면 모든 UI 기본 기능이 먹통이 되는 것을 볼 수 있습니다.
캔버스의 인스펙터 창을 보면
기본적으로 이렇게 되어 있습니다.
맨 위에 Transform 부분은 Render Mode가 Overlay라서 알아서 화면에 맞춰지기 때문에 잠겨 있습니다.
렌더 모드에는 오버레이, 카메라, 월드 이렇게 3가지 모드가 있는데 기본설정은 오버레이입니다.
하지만 Icicle Game에선 오버레이를 쓰지 않습니다. 오버레이를 쓰면 UI와 게임의 경계가 명확해서 UI가 무조건 게임 영역의 앞에 나오게 되는데 이래서는 안되기 때문입니다.
그래서 전 World Space모드를 사용했습니다.
렌더 모드 하나 바꿨을 뿐인데 많은게 바뀌었습니다.
Transform의 직접 설정이 가능해졌고 UI Scale Mode의 별도 설정이 사라졌습니다.
이걸 이용해서 맵 상에 부분적으로 UI를 띄울 수 있지만 현재까지의 Icicle Game에서는 이걸 쓴다고 딱히 오버레이와 다른 시각적 차이가 없습니다. 맵이 고정되어 있기 때문입니다.
그렇다면 왜 이걸로 쓰는가
이런 식으로 게임 오브젝트(배경)와 게임 오브젝트(고드름) 사이에 UI를 배치 할 수 있기 때문입니다.
이것 말고도 오버레이와는 달리 게임 영역과 같은 공간을 공유할 수 있다는 메리트는 UI만의 기능을 보다 폭 넓게 활용 할 수 있게 해줍니다.
별개로 나머지 설정은 당장은 크게 설정할 부분이 없습니다만 Canvas Scaler에 있는 Pixels Per Unit은 앞서 사전 설정들을 전부 해주었다면 둘 다 1로 해주는 편이 좋습니다.
특히 Dynamic Pixels Per Unit의 경우엔 해당 캔버스 내에서의 동적 그림(대표적으로 텍스트)의 해상도 조절입니다. 보통 1로 하면 충분하고 낮추면 점점 흐려지는데 만약 더 선명한 글자를 원하시면 저 수치를 늘리시면 됩니다.
'정리' 카테고리의 다른 글
(유니티3D) FPS 총기 반동 구현하기 2 (0) | 2018.01.24 |
---|---|
(유니티3D) FPS 총기 반동 구현하기 1 (1) | 2018.01.24 |
(유니티 2D) 카메라 사이즈와 Pixels Per Unit (1) | 2017.12.28 |
(유니티3D)CharacterController 횡스크롤 캐릭터 (0) | 2017.12.17 |
(유니티3D)커스텀 에디터(인스펙터 창 변경) (0) | 2017.12.15 |