Version: 2019.2
캔버스 컴포넌트
캔버스 스케일러

캔버스

Canvas 컴포넌트는 UI가 배치되고 렌더링되는 추상적인 공백을 나타냅니다. 모든 UI 요소는 캔버스 컴포넌트가 부착된 게임 오브젝트의 자식이어야 합니다. 메뉴(GameObject > Create UI)에서 UI 요소 오브젝트를 생성할 경우, 그 씬에 오브젝트가 없다면 캔버스 오브젝트가 자동으로 생성됩니다.

스크린 공간 - 오버레이 세팅
스크린 공간 - 오버레이 세팅
스크린 공간 - 카메라 세팅
스크린 공간 - 카메라 세팅
월드 공간 세팅
월드 공간 세팅

프로퍼티

프로퍼티: 기능:
Render Mode UI가 스크린으로 렌더링 되거나 3D 공백에서 오브젝트로 렌더링되는 방법을 나타냅니다(아래 설명 참조). 옵션으로는 Screen Space - Overlay, Screen Space - CameraWorld Space 가 있습니다.
Pixel Perfect(Screen Space modes only) 정밀도를 위해 UI가 안티앨리어싱 없이 렌더링되어야 합니까?
Render Camera(Screen Space - Camera mode only) UI가 렌더링될 카메라입니다(아래 설명 참조).
Plane Distance(Screen Space - Camera mode only) 카메라 앞으로부터 UI 평면이 위치할 곳까지의 거리를 나타냅니다.
Event Camera(World Space mode only) UI 이벤트를 처리하는 데 사용될 카메라를 의미합니다.
Receives Events UI 이벤트는 이 캔버스에서 처리돼야 합니까?

세부 정보

모든 UI 요소에 대해 캔버스는 하나만 있어도 충분하지만, 씬에 여러 개의 캔버스를 둘 수도 있습니다. 또한 최적화를 목적으로 하나의 캔버스가 다른 캔버스의 자식으로 존재하도록 배치하는 중첩 캔버스 방식도 가능합니다. 중첩 캔버스는 부모와 동일한 렌더 모드를 사용합니다.

일반적으로 UI는 단순한 그래픽 디자인이 직접 스크린에 드로우 되는 것처럼 렌더링됩니다. 즉, 카메라에서 바라보는 3D 공백이라는 컨셉이 아닙니다. Unity는 이런 방식의 스크린 공간 렌더링도 지원할 뿐 아니라, Render Mode 프로퍼티의 값에 따라 UIs가 오브젝트로 씬 안에서 렌더링 될수 있도록 지원합니다. 지원하는 모드는 Screen Space - Overlay, Screen Space - CameraWorld Space입니다.

스크린 공간 - 오버레이(Screen Space - Overlay)

모드에서는 캔버스가 화면에 맞게 스케일 된 후에 씬이나 카메라의 레퍼런스 없이 직접 렌더링됩니다(씬에 카메라가 아예 없는 경우에도 UI가 렌더링됩니다). 스크린의 크기나 해상도가 변경되면 UI는 자동으로 맞춤 스케일 됩니다. UI는 카메라 뷰 등 다른 그래픽스 위에 드로우 됩니다.

씬 오브젝트 위에 렌더링 된 오버레이 UI
씬 오브젝트 위에 렌더링 된 오버레이 UI

참고: 스크린 공간 - 오버레이 캔버스는 계층구조의 최상위 레벨에 저장되어야 합니다. 그렇지 않을 경우 UI가 뷰에서 사라질 수도 있습니다. 이는 빌트인 제약이므로, 원하는 결과를 얻으려면 스크린 공간 - 오버레이 캔버스를 계층 구조의 최상위 레벨에 두십시오.

스크린 공간 - 카메라(Screen Space - Camera)

이 모드에서는 캔버스가 특정 카메라의 앞쪽으로부터 일정 거리에 위치한 평면 오브젝트 위에 드로우되는 것처럼 렌더링됩니다. UI의 화면 크기는 카메라 절두체 내에 정확히 맞도록 항상 다시 스케일되기 때문에 거리에 따라 크기가 달라지지는 않습니다. 스크린의 크기나 해상도 또는 카메라 절두체가 변경되면 UI도 자동으로 다시 스케일 하여 맞춥니다. 씬 안의 3D 오브젝트 중 UI 평면보다 카메라에 가까운 모든 오브젝트는 UI 앞에 렌더링되고, UI 평면 뒤의 오브젝트는 가려집니다.

씬 오브젝트가 앞에 있는 카메라 모드 UI
씬 오브젝트가 앞에 있는 카메라 모드 UI

월드 공간(World Space)

모드에서는 UI가 씬 안에 있는 평면 오브젝트인 것처럼 렌더링합니다. 그러나 스크린 공간 - 카메라 모드와는 달리 이 때의 평면은 카메라를 향할 필요 없이 원하는 방향을 향해도 무방합니다. 캔버스의 크기는 사각 트랜스폼을 통해 설정할 수 있으나 화면에서의 캔버스 크기는 카메라의 뷰 각도와 카메라의 거리에 따라 달라집니다. 다른 씬 오브젝트는 캔버스에 걸치거나 뒤에 전달할 수 있습니다.

씬 오브젝트를 가로지르는 월드 공간 UI
씬 오브젝트를 가로지르는 월드 공간 UI

힌트

캔버스 컴포넌트
캔버스 스케일러