Unity Canvas Scaler

Canvas Scaler (캔버스 스케일러)

https://docs.unity3d.com/Packages/[email protected]/manual/script-CanvasScaler.html

캔버스 내 모든 UI 요소의 전체적인 스케일(크기)과 픽셀 밀도를 제어하는 데 사용하는 컴포넌트

이 스케일링은 폰트 크기와 이미지 테두리(Borders)를 포함하여 캔버스 아래에 있는 모든 요소에 영향을 미친다.


1. 주요 속성 (Properties)

속성 기능
UI Scale Mode 캔버스의 UI 요소가 스케일링되는 방식을 결정
- Constant Pixel Size 화면 크기에 상관없이 UI 요소가 동일한 픽셀 크기를 유지
- Scale With Screen Size 화면이 커질수록 UI 요소도 함께 커짐 (가장 많이 사용)
- Constant Physical Size 화면 크기나 해상도에 상관없이 UI 요소가 동일한 물리적 크기(mm 등)​를 유지

(1) Scale With Screen Size

특정 기준 해상도(Reference Resolution)​를 설정하고, 현재 화면에 맞춰 UI를 키우거나 줄입니다.

Reference Resolution: UI 레이아웃을 설계할 때 기준이 되는 해상도입니다.

Screen Match Mode: 현재 화면 비율이 기준 해상도와 다를 때 캔버스 영역을 맞추는 방식입니다.

  • Match Width or Height: 가로 폭이나 세로 높이 중 하나를 기준으로(또는 그 사이 값으로) 스케일을 조절합니다.
  • Expand: 캔버스 크기가 기준 해상도보다 작아지지 않도록 가로나 세로 방향으로 확장합니다.
  • Shrink: 캔버스 크기가 기준 해상도보다 커지지 않도록 가로나 세로 방향으로 자릅니다(Crop).

Match: 가로(0)와 세로(1) 중 어느 쪽을 스케일링 기준으로 삼을지 결정합니다.

(2) Constant Pixel Size

UI 요소의 위치와 크기가 화면의 픽셀 단위로 지정됩니다.

  • Scale Factor: 캔버스 내 모든 UI 요소에 일괄적으로 적용되는 스케일 값입니다.
  • Reference Pixels Per Unit: 스프라이트의 'Pixels Per Unit' 설정이 이 값과 같다면, 스프라이트의 1픽셀은 UI상의 1유닛(픽셀)과 대응합니다.

(3) Constant Physical Size

UI 요소의 크기를 밀리미터(mm), 포인트(points), 파이카(picas) 등 물리적 단위로 지정합니다.

  • Physical Unit: 위치와 크기를 지정할 물리적 단위입니다.
  • Fallback Screen DPI: 기기의 DPI를 알 수 없을 때 가정할 기본 DPI 값입니다.
  • Default Sprite DPI: 스프라이트의 픽셀 밀도 기준입니다.
  • Reference Pixels Per Unit: 스프라이트의 'Pixels Per Unit' 설정이 이 값과 같다면, 스프라이트의 1픽셀은 UI상의 1유닛(픽셀)과 대응합니다.

2. 언제 사용하나요?

모드 핵심 개념 주 사용처
Scale With Screen Size 비율 중심 일반적인 모든 모바일/PC 게임
Constant Pixel Size 픽셀 수 중심 전문 도구, 캔버스 좌표가 중요한 앱
Constant Physical Size 실제 길이(cm) 중심 물리적 크기가 고정되어야 하는 특수 목적 앱

(1) 모바일 게임 - Scale With Screen Size

가장 많이 사용하며, 모바일 게임 개발의 표준입니다.

  • 언제 사용하나?
    • 대부분의 모바일 게임, PC 게임을 만들 때.
    • 화면이 커지면 UI도 그에 비례해서 커지길 원할 때.
    • 다양한 해상도(아이폰, 갤럭시, 태블릿 등)에 대응해야 할 때.
  • 특징: 기준 해상도(예: 1440x2560)를 정해두면 유니티가 알아서 기기 화면에 맞춰 UI를 키우거나 줄여줍니다. 개발자는 한 가지 사이즈만 고민하면 됩니다.

(2) 도구 모음, 정교한 그래픽 툴 - Constant Pixel Size

픽셀 숫자를 그대로 유지합니다.

  • 언제 사용하나?
    • 웹 브라우저의 도구 모음이나 정교한 그래픽 툴 같은 앱을 만들 때.
    • 해상도가 높아져도 아이콘이 커지지 않고, 대신 더 넓은 작업 공간을 보여주고 싶을 때.
    • 저해상도와 고해상도에서 UI의 "선명도"를 1:1 픽셀 매칭으로 유지하고 싶을 때.
  • 특징: 100x100 픽셀 버튼은 4K 모니터에서도 100x100 픽셀입니다. 따라서 고해상도 기기일수록 UI가 매우 작게 보입니다.
그림판
그림판

(3) 실제 크기가 중요 - Constant Physical Size

실제 자(Ruler)로 쟀을 때의 물리적 크기를 유지합니다.

  • 언제 사용하나?
    • 실제 크기가 중요한 앱: 예를 들어 화면에 대고 길이를 재는 '자(Ruler) 앱'이나, 사람의 손가락 크기에 맞춰 버튼 크기가 물리적으로 일정해야 하는 특수 장비용 앱.
    • 화면의 밀도(DPI)와 상관없이 버튼이 항상 1cm가 되어야 할 때.
  • 특징: 기기가 5인치든 10인치든 상관없이 버튼의 실제 길이를 유지하려 노력합니다. 기기가 화면의 DPI 정보를 정확히 전달해줘야 정상 작동합니다.