SideProjects/DuolingoClone

[듀오링고 클론 코딩 with Unity] UI Canvas와 게임 오브젝트

VirtualDever 2022. 3. 1. 19:53

이번에는 본격적으로 게임에 UI를 추가해 보겠습니다.

Text나 Image와 같은 UI 요소들을 추가하기 위해서는, Hierarchy 상에 최상단에 Canvas가 존재해야 합니다.

Canvas는 말 그대로 캔버스로 UI를 그릴 수 있는 공간이라고 보면 되겠습니다.

Hierarchy에서 오른쪽 마우스 클릭을 하면 메뉴가 열립니다.

메뉴를 따라가다 보면 여러 창이 뜰 수 있습니다.

GameObject => UI => Canvas를 클릭합니다.

그러면 아래 화면과 같이 Hierarchy에 Canvas 게임오브젝트가 생성됩니다.

유니티에서는 모든 요소들을 기본적으로 Game Object(게임 오브젝트)라고 부릅니다.

따라서 Canvas 또한 게임 오브젝트에 속합니다.

또한 Canvas는 아래 화면과 같이 여러 Component (컴포넌트)를 가지고 있습니다.

이때, 컴포넌트는 한국어로 구성요소, 부품이라고 볼 수 있습니다.

그래서 Canvas 게임오브젝트에는 총 4개의 컴포넌트가 추가되어 있는 것을 확인할 수 있습니다.

각 컴포넌트들이 어떤 기능을 하는지는 여기에서 설명하지 않겠습니다.

다만 중요한 점은 게임오브젝트는 다수의 컴포넌트를 가질 수 있다는 점입니다.

마치 레고 부품을 조립해서 자동차를 만들 수 있는 것과 비슷한 개념이라고 할 수 있습니다.

 

컴포넌트에 대한 이해를 제대로 하기 위해 한 가지 실험을 해보겠습니다.

Hierarchy 창에서 마찬가지로 오른쪽 클릭하고 Create Empty 메뉴를 클릭합니다.

 

그러면 아래 화면과 같이 GameObject 라는 이름을 가진 게임오브젝트가 생성된 것을 확인할 수 있습니다.

GameObject 라는 이름은 Create Empty로 생성했을 때, 디폴트로 설정됩니다.

그런데 자세히 보니까 Canvas와는 다르게 GameObject를 클릭해 보았더니 Transform 이라는 컴포넌트 하나만 추가되어 있는 것을 확인할 수 있습니다.

비어있는 게임오브젝트도 컴포넌트를 하나 가지고 있는데 그것은 Transform 또는 RectTransform 입니다.

이 Transform은 게임오브젝트의 위치, 회전, 크기 등의 속성을 가지고 있습니다.

Transform은 가장 기본적인 속성 또는 옵션이라고 볼 수 있습니다.

 

Hierarchy 창에서 Canvas를 다시 클릭해봅니다.

그러면 Transform과 유사한 RectTransform 컴포넌트가 최상단에 추가되어 있는 것을 확인할 수 있습니다.

마찬가지로 위치, 크기 등의 속성을 가지고 있는데 다른 점은 RectTransform은 UI 전용이라는 것입니다.

 

마지막으로 정리하겠습니다.

Canvas도 게임오브젝트이고, RectTransform을 포함한 기본적인 컴포넌트들로 구성되어 있습니다.