Unity 사용자 매뉴얼 2022.3 (LTS)
사용자 인터페이스(UI) 생성
캔버스(Canva)
모든 UI 요소는 반드시 캔버스 안에 위치해야 합니다. 캔버스는 Canvas 컴포넌트를 가진 게임 오브젝트로, UI 요소는 반드시 어떤 캔버스의 자식이어야 합니다.
UI 요소 생성
예를 들어, GameObject > UI > Image
메뉴를 사용하여 이미지를 생성하면, 씬에 캔버스가 없을 경우 자동으로 캔버스가 생성됩니다. 이때 UI 요소는 해당 캔버스의 자식으로 생성됩니다.
캔버스 영역
캔버스 영역은 씬 뷰에서 사각형으로 나타나며, 이를 통해 게임 뷰를 보지 않고도 UI 요소를 배치할 수 있습니다.
메시징 시스템
캔버스는 메시징 시스템을 지원하기 위해 EventSystem 오브젝트를 사용합니다.
요소 그리기 순서
- 캔버스에 있는 UI 요소는 계층 구조에 나타나는 것과 동일한 순서로 그려집니다.
- 첫 번째 자식이 처음으로 그려지고, 두 번째 자식이 그 다음으로 그려집니다.
- 두 UI 요소가 겹칠 경우, 나중에 그려지는 요소가 먼저 그려진 요소의 위에 나타납니다.
- 요소의 그리기 순서를 변경하고 싶다면, 계층 구조에서 드래그하여 순서를 바꿀 수 있으며,
SetAsFirstSibling
,SetAsLastSibling
,SetSiblingIndex
메서드를 통해 스크립팅으로 제어할 수도 있습니다.
렌더 모드(Render Mode)
캔버스의 렌더 모드는 두 가지 옵션이 있습니다: 스크린 공간과 월드 공간.
스크린 공간 - 오버레이(Screen Space - Overlay)
- UI 요소가 화면에서 씬의 위에 렌더링됩니다.
- 스크린 크기나 해상도가 변경되면 캔버스는 자동으로 크기를 조절합니다.
스크린 공간 - 카메라(Screen Space - Camera)
- 이 모드는 스크린 공간 - 오버레이와 유사하지만, 특정 카메라에서 주어진 거리만큼 앞쪽에 위치합니다.
- 카메라의 설정이 UI의 모습에 영향을 주며, 원근감을 설정할 수 있습니다.
월드 공간(World Space)
- 이 모드에서는 캔버스가 씬의 다른 오브젝트처럼 동작합니다.
- UI 요소는 3D 배치에 기반하여 씬의 다른 오브젝트의 앞 또는 뒤에 렌더링됩니다.
- UI가 월드의 일부로 의도된 경우에 유용합니다.
예제 활용
여기 몇 가지 Unity UI를 활용한 예제를 소개합니다.
예제 설명 | 예제 코드 | 설명 |
---|---|---|
기본 이미지 생성 | GameObject > UI > Image 를 사용하여 기본 이미지를 생성합니다. |
|
버튼 만들기 | ```csharp | UIButton을 생성하기 위해 게임 오브젝트를 만들고 EventSystem을 추가합니다. |
텍스트 표시 | ```csharp | UI Text 요소를 사용하여 게임 점수나 메시지를 표시할 수 있습니다. |
슬라이더 사용 | ```csharp | 슬라이더 UI를 통해 플레이어의 체력이나 설정을 조정할 수 있습니다. |
이상으로 Unity의 기본 UI 구성 요소와 캔버스에 대한 설명을 마칩니다. 각 요소를 활용한 보다 다양한 응용이 가능합니다.