Unity UI 스케일러 가이드
이 문서는 Unity의 캔버스 스케일러(Canvas Scaler) 컴포넌트에 대한 자세한 설명을 제공합니다. 캔버스 스케일러는 UI 요소의 크기와 스케일을 제어하여 다양한 화면 크기와 해상도에 적합한 UI를 만들어 줍니다.
캔버스 스케일러란?
캔버스 스케일러는 UI 요소의 전체적인 스케일과 픽셀 밀도를 제어하며, UI의 폰트 크기 및 이미지의 경계에 영향을 미칩니다.
주요 프로퍼티
프로퍼티 | 기능 설명 |
---|---|
UI Scale Mode | UI 요소의 스케일 방식을 결정합니다. |
Constant Pixel Size | UI 요소가 화면 크기에 상관없이 동일한 픽셀 크기로 유지됩니다. |
Scale With Screen Size | 화면 크기에 비례하여 UI 요소가 스케일됩니다. |
Constant Physical Size | 물리적인 크기를 기준으로 UI 요소가 유지됩니다. |
Scale Factor | 모든 UI 요소를 적용할 배율을 지정합니다. |
Reference Pixels Per Unit | 스프라이트의 1픽셀이 UI의 유닛 하나에 해당합니다. |
Reference Resolution | UI 레이아웃에 적합한 해상도를 설정합니다. |
Screen Match Mode | 해상도의 종횡비가 다를 때 캔버스를 스케일하는 방식을 설정합니다. |
Match Width or Height | 캔버스의 너비 또는 높이를 기준으로 스케일링합니다. |
Expand | 캔버스 크기가 레퍼런스보다 작아지지 않도록 확장합니다. |
Shrink | 캔버스 크기가 레퍼런스보다 커지지 않도록 자릅니다. |
스케일 모드 설명
- 고정 픽셀 크기 (Constant Pixel Size)
- UI 요소의 크기와 위치가 픽셀 단위로 지정됩니다. 기본적으로 이 모드는 캔버스 스케일러와 연결되지 않은 경우에도 적용됩니다.
- 화면 크기에 따른 스케일 (Scale With Screen Size)
- 레퍼런스 해상도의 픽셀 수에 따라 UI 요소의 크기와 위치가 조정됩니다. 현재 해상도가 위의 레퍼런스 해상도보다 크면 캔버스가 확대되고, 작으면 축소됩니다.
- 고정 물리적 크기 (Constant Physical Size)
- UI 요소의 크기가 물리적 단위로 지정됩니다(예: 밀리미터, 포인트). 이 모드를 사용하기 위해서는 기기의 DPI가 정확해야 하며, 그렇지 않은 경우 대체 DPI를 지정할 수 있습니다.
활용 및 응용 예제
UI 디자인 팁
- 멀티 해상도: 다양한 해상도에 적합한 UI를 만들기 위해서는 Screen Match Mode를 적절히 조정하는 것이 중요합니다. Match Width or Height를 사용하여 화면에 맞는 비율을 유지하는 것이 좋습니다.
- 앵커 활용: RectTransform의 앵커를 잘 설정하면 다양한 해상도에서도 잘 어우러지는 UI 배치를 만들 수 있습니다.
- DPI 설정: 모바일 기기에서 물리적 크기 설정을 사용할 경우, 날씨에 따라 변동할 수 있는 DPI를 고려해야 합니다.
코드 예제
using UnityEngine;
using UnityEngine.UI;
public class UIScalerExample : MonoBehaviour
{
public CanvasScaler canvasScaler;
void Start()
{
// 초기 캔버스 스케일러 설정
canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
canvasScaler.referenceResolution = new Vector2(1920, 1080);
}
}
위의 코드 예제는 캔버스 스케일러를 설정하여 화면 크기에 따라 UI 요소의 크기가 조정되도록 설정하는 방법을 보여줍니다.
결론
캔버스 스케일러는 Unity에서 UI를 구축하는 데 중요한 컴포넌트입니다. 다양한 스케일 모드를 활용하여 다채로운 화면 환경에서 일관된 UI를 제공할 수 있습니다. UI 디자인에 있어 사용자의 경험을 최우선으로 고려하여 설정하는 것이 중요합니다.