본문 바로가기

Unity3D 게임 엔진 연구소/구성요소(Component)

[UI] Canvas에 대해 알아보자(Render Mode/Sort Order/Target Display)

반응형

UI-Canvas

유니티 UI를 사용할 때 반드시 사용되는 것 중 하나가 바로 Canvas입니다. 다른 UI들이 Canvas의 Hierarchy 하위에 있어야 비로소 그려지는데요. Canvas 오브젝트 자체를 생성하면 컴퍼넌트로 Canvas뿐만 아니라 Canvas Scaler나 Graphic Raycaster도 동시에 생성되는데요. 캔버스를 사용할 때는 이렇게 만들어서 쓰는 게 가장 좋습니다. 그럼 이렇게 3개가 생성되는 것 중에 이번엔 Canvas에 대해 알아보겠습니다.

 

Canvas는 사용 목적에 따라서

렌더러 모드를 설정합니다.

렌더러 모드에 따라서

하위 목록이 다릅니다.

 

Canvas 변경 가능한 변수


Render Mode / Pixcel Perfect

/ Sort Order / Target Display

/ Additional Shader Channels

/ Sorting Layer / Order in Layer

/ Render Camera / Plane Distance

 

 


 

Render Mode


 

렌더 모드 변경

Render Mode어떻게 그리는지에 대한

기준을 설정할 수 있습니다.

항상 화면에 떠 있게 하고 싶거나

카메라를 따라다니게 하고 싶거나

게임 오브젝트처럼 사용할 수 있습니다.

 

1. Screen Space - Overlay

 

Scene View
Game View

캔버스의 기본 값으로

화면 전체에 항상 떠 있게 할 수 있습니다.

화면의 UI를 구성할 때 사용됩니다.

기본적으로 3D 오브젝트 보다 먼저 그려져서

오브젝트 앞에 보입니다.

 

Sort Order

Canvas 사이에서

순서를 정할 수 있습니다.

동일한 Sort Order를 가지고 있을 경우

Hierarchy 상에서 아래에 있는

캔버스가 앞으로 나오는데

Sort Order로 순서를 정해서

Canvas 별 그리는

순서를 바꿀 수 있습니다.

Sort Order가 크면 앞에 표시됩니다.

 

 

Target Display

 

TargetDisplay

컴퓨터에는 모니터를 여러 개 연결하여

멀티 모니터를 사용할 수 있습니다.

기본적으로 메인 모니터에만 표시하지만

만들려는 프로그램에 따라서 여러 모니터 화면에

화면을 띠워야 될 때도 있습니다.

이럴 경우 캔버스를 어디 모니터에 띠울지

설정할 수 있습니다. Display1부터 Display8까지 가능합니다.

 

 

GameView

캔버스의 Target Display를 설정한 후

유니티 에디터에서도 잘 설정됐는지

확인할 수 있는데 왼쪽 상단에서

Display를 선택하여 테스트해볼 수 있습니다.

 


 

2. Screen Space - Camera

 

Scene View
Game View

카메라를 할당하여 카메라를

항상 따라다니게 할 수 있어서

카메라에 맞는 UI 화면 구성에 사용됩니다.

Overlay처럼 항상 화면에 표시할 수 있지만

Overlay 방식과 다르게 3D 오브젝트를

기본적으로 화면 앞에 표시할 수 있습니다.

 

 

Render Camera

캔버스에 사용할 카메라를 할당해줍니다.

기본 값은 None으로 할당하지 않으면

게임뷰에 표시는 되지만 Overlay 처럼

게임 오브젝트들을 가립니다.

 

 

Plane Distance

캔버스와 카메라와의

거리를 설정할 수 있습니다.

거리가 멀어지면 그만큼

캔버스의 크기가 커집니다.

기본 값은 100입니다.

 

 


 

3. World Space

 

Scene View
Game View

 

3D 게임을 만들 때 가장 많이 사용되는

RenderMode 방식으로 3D 공간에서

3D 오브젝트를 배치하는 것처럼

자유자재로 사용할 수 있습니다.

우리에게 너무 익숙한 3D 오브젝트와

그려지는 순서가 비슷해서 3D 오브젝트

뒤에 배치하면 가려지고

앞에 배치하면 보입니다.

 

 

Sorting Layer / Order in Layer

순서를 정할 수 있는 레이어를 추가

설정하고 그것의 순서를 정할 수 있습니다.

Sort Order를 사용하는 Overlay 방식을 제외하고

설정할 수 있습니다.

기본 값은 Default에 0입니다.

 


 

Pixel Perfect (bool)


 

캔버스 안의 요소를 픽셀과 정렬되도록 하고

RenderMode는 Screen Space(Overlay/Camera)일 때만 적용됩니다.

활성화하면 캔버스 안 요소들이

비교적 더 선명하고 흐릿한 현상을

방지할 수 있지만 요소들이 크기/회전/위치 등

애니메이션으로 동작할 때 디테일하게

조정되는 경우 비활성화하는 것이

더 부드럽게 동작하는데 유리합니다. 

기본 값은 false입니다.

 

 


 

 

Additional Shader Channels


 

Additional Shader Channels

캔버스 메시를 만들 경우 이곳에서 

사용할 추가 셰이더 채널의 마스크를

불러오거나 설정할 수 있습니다.

 

Nothing이 기본 값이고

Everything / TexCoord1

/ TexCoord2 / TexCoord3

Normal / Tangent 등으로

변경할 수 있습니다.

반응형


이 블로그는 쿠팡 파트너스 활동으로, 실구매 시 수수료를 제공받는 콘텐츠를 포함하고 있습니다.
공돌이 JAKE의 개발노트