UI
기본적인 레이아웃

캔버스

Canvas는 모든 UI 요소를 배치하기 위한 영역입니다. Canvas는 Canvas 요소와 함께 사용하는 게임 오브젝트로, 모든 UI 요소는 Canvas의 자식 요소여야 합니다.

새 UI 요소를 작성하는 경우, Image 메뉴의 GameObject> UI> Image를 사용하며, 생성하면 씬에 아직 Canvas가 생성되어 있지 않아도 Canvas는 자동으로 생성됩니다. 그 UI 요소는 이 Canvas의 자식 요소로 작성됩니다.

Canvas 영역은 Scene View에서 사각형으로 표시된 범위로 표시됩니다. 이것은 항상 Game View를 표시하지 않아도 간단히 UI 요소를 배치할 수 있다는 것을 의미합니다.

Canvas uses the EventSystem object to help the Messaging System.

요소의 그리기 순서

Canvas의 UI 요소는 계층 구조에 나타나는 순서와 동일한 순서로 그려집니다. 첫 번째 자식은 맨 처음 그려지고, 두 번째 자식은 그 다음에 그려지는 순서로 그려갑니다. 두 개의 UI 요소가 겹치는 경우, 나중에 그려진 UI 요소는 먼저 그린 UI 요소에 표시됩니다.

다른 요소에 표시되는 요소를 변경하려면 계층 구조에서 해당 요소를 드래그하여 쉽게 정렬할 수 있습니다. 스크립트에서 Transform 컴포넌트: SetAsFirstSibling, SetAsLastSibling, SetSiblingIndex를 사용하여 그리기 순서를 제어할 수 있습니다.

렌더링 모드

Canvas는 스크린 공간(Screen Space) 또는 월드 공간(World Space)에서 렌더링을 설정하는 렌더 모드(Render Mode)를 가지고 있습니다.

Screen Space - Overlay

이 렌더링 모드는 씬에 렌더링 된 UI 요소를 화면에 배치합니다. 화면 크기와 해상도가 변경된 경우, Canvas는 스크린에 일치하도록 자동으로 크기를 변경합니다.

Screen Space - Overlay에서의 UI
Screen Space - Overlay에서의 UI

Screen Space - Camera

이것은 Screen Space - Overlay와 비슷하지만, 이 렌더링 모드에서 Canvas는 지정된 거리의 Camera 앞에 배치됩니다. UI 요소는 이 카메라에 의해 그려져, 이 카메라의 설정을 변경하는 것은 UI 요소의 모양에 영향을 끼치는 것을 의미합니다. 카메라가 Perspective로 설정되어 있는 경우, UI 요소는 원근법으로 그려지며, 원근 왜곡의 양은 카메라의 Field of View에서 제어할 수 있습니다. 화면 크기와 해상도 변경, 카메라의 frustrum을 변경한 경우, Canvas도 자동으로 일치하도록 크기가 변경됩니다.

Screen Space - Camera에서의 UI
Screen Space - Camera에서의 UI

World Space

이 렌더링 모드는 Canvas를 씬에서 다른 오브젝트처럼 작동시킵니다. Canvas의 크기는 Rect Transform을 사용하여 수동으로 설정할 수 있으며, UI 요소는 3D의 배치에 따라 다른 오브젝트의 앞면 또는 뒷면에 그려집니다. 이것은 월드의 게임 세계에 속하는 인터페이스 UI의 일부로써 유용합니다.

World Space에서의 UI
World Space에서의 UI
UI
기본적인 레이아웃