게임 엔진/Unity

[Unity] Canvas Scaler (캔버스 스케일러)

겜도리도리 2022. 7. 7. 15:01
반응형

개요

캔버스 스케일러는 캔버스 내 UI 요소의 전체적인 스케일과 픽셀 밀도를 제어하는 데 사용된다.

Constant Pixel Size, Scale With Screen Size, Constant Physical Size 3개의 종류가 있다.

 

Constant Pixel Size

UI 요소가 화면 크기에 관계없이 동일한 픽셀 크기로 유지된다.

따라서 해상도가 커지면 UI 크기는 그대로 이기 때문에 UI가 작아보이고

해상도가 작아질 때도 UI 크기가 그대로이므로 이 때는 UI가 커보이게 된다.

 

1920x1080
3840x2160

해상도가 커지자 버튼 크기가 작아진 모습을 볼 수 있다.

 

Scale Factor : 캔버스의 모든 UI 요소를 이 배율로 설정한다.

Reference Pixels Per Unit : 스프라이트에 Pixels Per Unit이 설정된 경우에 스프라이트 1픽셀이 UI 유닛 하나에 해당된다.

Scale With Screen Size

UI 요소가 화면 크기에 영향을 받게 된다.

화면 크기에 따라 UI 크기가 조정되므로, 해상도에 관계 없이 같은 크기를 가진다.

 

1920x1080
3840x2160

해상도가 커져도 버튼 크기가 그대로인 모습

Reference Resolution : 기준이 되는 해상도의 크기를 정한다.

Screen Match Mode : Match Width Or Height, Expand, Shrink 3가지가 있다.

 

3가지 Mode

Match Width Or Height

 

Match Width Or Height

Match : 캔버스의 너비 / 높이를 레퍼런스로 하여 스케일한다.

 

Expand

캔버스 크기가 레퍼런스보다 더 작아지지 않도록 확장한다. 즉, 최소 크기를 보장받게 된다.

Shrink

캔버스 크기가 레퍼런스보다 더 커지지 않도록 축소한다. 즉, 최대 크기를 제한받게 된다.

 

일반적으로 Expand가 현업에서 가장 자주 사용된다고 한다.

Constant Physical Size

UI의 포지션과 크기가 물리적인 단위(밀리미터, 센치미터 등)으로 지정된다.

Constant Physical Size를 사용할 때는 화면 DPI가 정확히 보고되어야 한다.

정확히 보고하지 않는 경우에는 Fallback Screen DPI를 사용한다.

 

Physical Unit : 포지션 및 크기를 지정한다.

Fallback Screen DPI : 화면 DPI를 알 수 없는 경우 가정되는 DPI이다.

Default Sprite DPI : 'Pixels Per Unit' 설정이 'Reference Pixels Per Unit' 설정과 일치하는 스프라이트에 사용할 인치당 픽셀(DPI)이다.

 

기타

캔버스가 'Screen Space - Overlay' 또는 'Screen Space - Camera'로 설정된 경우에만 위 3가지 모드로 설정할 수 있다.

공식 문서

https://docs.unity3d.com/kr/2021.3/Manual/script-CanvasScaler.html

 

캔버스 스케일러 - Unity 매뉴얼

캔버스 스케일러(Canvas Scaler) 컴포넌트는 캔버스 내 UI 요소의 전체적인 스케일과 픽셀 밀도를 제어하는 데 사용됩니다. 스케일은 글꼴 크기와 이미지 경계 등 캔버스 아래의 모든 요소에 영향을

docs.unity3d.com

 

반응형