테블릿을 제외하더라도 안드로이드 디바이스는기기마다 해상도가 너무나도 다양합니다.

특히 구형 기기와 신형 기기의 해상도가 많이 차이나죠.

 

때문에, 웬만한 디바이스들은 다 커버할 수 있게 UI가 기기의 해상도에 따라 변하도록 설정해줘야합니다.

 

유니티에 캔버스를 추가하면 기본으로 다음과 같이 설정 돼 있을 겁니다.

 

 

Canvas Scaler를 보시면 UI Scale Mode가 Constant Pixel Size로 돼 있는 걸 확인할 수 있습니다.

UI의 요소들이 해상도에 상관 없이 동일한 픽셀 수를 유지하는 설정인데요,

딱히 기기 테스트를 안하고 유니티 안에서 테스트를 해봐도 어떤 현상이 일어나는지 확인할 수 있습니다.

 

1920 x 1080(16:9)에서 만든 UI들 입니다.

 

같은 비율을 유지한 채 2560 x 1440으로 바꾸니 작아집니다.

 

 

 

UI Scale Mode를 드롭다운 하면 3가지 모드가 있는 걸 확인할 수 있습니다.

해상도마다 UI 크기를 같게 해주고 싶다면 두 번째에 있는 Scale With Screen Size를 선택하면 됩니다.

 

 

그럼 위와 같은 항목들을 확인할 수 있습니다.

Reference Resolution은 기준이 되는 해상도를 입력하면 됩니다.

저는 주로 1920 1080 해상도에서 작업을 해 왔기에 위와 같이 입력했는데요,

재량껏 써주시면 됩니다.

 

 

Screen Match Mode는 3가지 항목이 있습니다.

 

1. Match Width or Height

기준이 되는 해상도의 가로 또는 높이중 하나를 기준으로 해서 비율을 유지한 채 확장 또는 축소시킬건지 정합니다.

 

Match Width or Height를 선택하면 위와 같이 슬라이더가 나타납니다.

 

2. Expand

말 그대로 확장입니다.

 캔버스 크기가 Reference Resolution에 설정한 값보다 더 작아지지 않도록 캔버스 영역을 수평 또는 수직으로 확장합니다.

 

3. Shrink

Expand의 반대입니다.

 캔버스 크기가 Reference Resolution에 설정한 값보다 커지지 않도록 캔버스 영역을 수평 또는 수직으로 잘라냅니다.

 

 

Match Width of Height에서 Match값을 0으로 조절하면 Expand와 같고, 1로 조절하면 Shrink와 같습니다.

즉, Shrink와 Expand를 적절히 배합하여 사용하고싶을 때만 Match Width or Height를 선택하여 Match값을 변경해주면 됩니다.

 

1920x1080 과 2560x1440같이 해상도가 다르더라도 같은 비율(16:9)이라면

Expand나 Shrink나 같은 UI크기를 유지합니다.

하지만 갤럭시 S8부터는 18.5:9의 비율이고, 테블릿과 핸드폰의 비율은 완전히 다르기 때문에 Expand 또는 Shrink를 선택해 주어야 합니다.

경험상 Expand가 더 나은 것 같습니다.

 

 

 

 

반응형