[Unity Course 2] 07. 유니티 UI 시스템 1
위키북스 출판사 이재현 저자님의 '절대강좌! 유니티' 책을 참고하여 필기한 내용입니다.
유니티 UI 구현 형태
유니티에서 제공하는 UI 3가지
- IMGUI(Immediate Made GUI)
- UI Toolkit
- Unity UI (UGUI)
IMGUI
: 코드를 이용하여 UI 를 표시하는 방법, 개발 과정에서 간단한 테스트용으로 사용
OnㅎGUI 함수는 Update 함수와 같이 매 프레임 발생하 비효율적
UI Toolkit
화면상의 위치나 정렬 등을 수정할 때 일일이 수작업으로 수정해야되는 단점
UI Asset 파일로 UI 스타일을 정의하고 디자인함
UXML 기반의 UI 디자인은 위치, 크기, 정렬 등의 속성을 수치로 관리하여 편리한 도구
Unity UI
: UGUI라는 명칭으로 사용되다가 변경됨, 게임오브젝트 기반의 UI로서 모든 UI 구성요소를 게임오브젝트로 관리
UI리소스 준비

Canvas 객체
Canvas를 생성하면 EventSystem도 같이 생성된다.
Main 씬을 생성하고 Canvas 를 추가한다.

EventSystem 객체
: EventSystem, Standalone Input Module 컴포넌트를 포함
EventSystem 컴포넌트의 First Selected 속성을 이용하여 처음 포커스를 갖는 UI 항목을 지정할 수 있음
EventSystem가 없으면 다양한 입력 이벤트에 반응하지 않음

Canvas 객체의 컴포넌트
Canvas 객체는 Rect Transform, Canvas, Canvas Scaler, Graphic Raycaster라는 4개의 컴포넌트로 구성
UI 항목은 반드시 Rect Transform 컴포넌트를 포함함

Canvas 컴포넌트
UI 항목을 화면에 배치하고 렌더링 하는 역할
Screen Space - Overlay
기본 설정 값으로 UI 항목은 씬의 가장 상위 계층에 표현
Canvas의 크기는 화면의 해상도에 맞춰 자동으로 스케일이 조절

Screen Space - Camera
씬의 가장 상위 UI 항목이 표시되는 Screen Space - Overlay 옵션과 동일하지만
UI 항목을 렌더링하는 별도의 카멜를 설정 가능
씬 전체를 비추는 Main Camera와 별도로 UI 만을 위한 카메라로 이원화할 경우 사용
UI 항목을 렌더링 하기 위해 추가된 카메라는 기존의 Main Camera와 충돌이 없도록 Clear Flag, Culling Mask, Depth 속성을 적절히 설정

World Space
씬에 있는 다른 게임오브젝트에 직접 UI 항목을 추가
HUD(Head Up Display), VR, AR 을 구현할 때 사용
이 모드로 설정하면 해당 Canvas 는 더이상 Rect Transform의 영향을 받지 않음

이 옵션을 설정하면 Canvas의 물리적인 위치를 이동할 수 있음