나만의 작은 도서관
[TIL][C++] 251029 MMO 서버 개발 125일차: [언리얼] UMG 앵커 제대로 알아보기 + Canvas Panel Slot 본문
Today I Learn
[TIL][C++] 251029 MMO 서버 개발 125일차: [언리얼] UMG 앵커 제대로 알아보기 + Canvas Panel Slot
pledge24 2025. 10. 29. 22:36주의사항: 해당 글은 일기와 같은 기록용으로, 다듬지 않은 날것 그대로인 글입니다.
[언리얼] UMG 앵커 제대로 알아보기
앵커(Anchor)란?
- 앵커는 Canvas Panel 위젯을 부모 위젯으로 두는 위젯이 사용할 수 있으며, 위젯을 Canvas Panel에 배치할 때 기준점으로써의 역할을 한다.
- 아래 사진은 Canvas Panel 위젯을 부모 위젯으로 두었을때 디테일 패널에 나타나는 앵커 목록이다.
- 정확히는 Slot(Canvas Panel Slot) → Anchors에 있다.

앵커 프로퍼티 알아보기
Anchors
- 앵커를 설정하는 프로퍼티이다.
- 사용하는 법: 드롭다운 메뉴에서 프리셋 앵커를 사용하거나, Minimum, Maximum 값을 수동으로 입력하여 앵커를 설정할 수 있다. 또는 앵커 매달을 드래그해도 된다.

- 앵커 메달(Anchor Medal)은 왼쪽 위에 있는 꽃모양처럼 생긴 심벌을 의미한다. 앵커 매달은 앵커를 사용할 수 있는(Canvas Panel의 자식인) 위젯을 선택하면 자동으로 표시된다.
- 앵커 파라미터인 Minimum과 Maximum은 앵커 메달을 쪼개쓰지 않는 한(?) 값이 동일하다.(앵커 메달에 대한 이야기는 뒤에서 설명) 왼쪽 상단이 (0, 0)이고, 오른쪽 하단이(0, 0)이다.
- 예를 들어, 왼쪽 상단 기준 Canvas Panel에서 가로로 70% 지점에 세로로 30% 지점인 위치에 앵커를 박고 싶다면 Minimum과 Maximum의 값은 각각 (0.7, 0.3)이 된다.

Position X / Position Y
- 앵커로부터 오프셋이다. 설정한 오프셋만큼 떨어진 곳에 위젯이 배치된다.
- 예를 들어, Anchor가 (0, 0)에 박혀있는 상태에서 Position X, Position Y의 값을 100, 200만큼 주었다면 앵커로부터 오른쪽으로 100픽셀, 아래로 200픽셀 떨어진 위치에 위젯이 배치된다.

Size X / Size Y
- 선택한 위젯의 가로 세로 길이를 정한다. Size X는 가로, Size Y는 세로 길이를 의미한다. 그림은 생략한다.
추가로 알아보는 프로퍼티 - Slot(Canvas Panel Slot의 Alignment)
Alignment
- 위젯의 정렬을 설정한다. 0부터 1 사이의 값을 설정할 수 있으며, 값이 커질수록 왼쪽으로(또는 위로) 위젯이 이동한다.
- Alignment가 (0, 0)이면 Anchor가 위젯의 좌측 상단에, (1, 1)이면 위젯의 우측 하단에 위치하게 된다.
- 주의: 여기서 Anchor는 앵커 메달의 위치가 아닌, PositionX/Y나 SizeX/Y 등의 Anchor 프로퍼티가 전부 적용된 위치를 의미한다.


Size To Content
- 현재 위젯 내부에 들어있는 위젯들이 요구하는 크기에 딱 맞게끔 현재 위젯의 Size가 조절된다. 텍스트처럼 그 크기가 동적으로 변하는 위젯이 있을 때 유용하다.
ZOrder
- 위젯의 표시 순서를 결정하는 숫자. 위젯이 곂칠 경우, ZOrder가 높은 위젯이 위에 위에 표시된다.
앵커 메달 쪼개기?
- 앵커 메달을 쪼개기가 가능하다. 가장 대표적으로 앵커 프리셋에서 Stretch를 사용하면 앵커가 2개로 쪼개지는데, 이렇게 앵커 메달이 2개로 쪼개지는 이유는 단순히 앵커가 2개로 늘었기 때문. 즉, 기준점이 2개가 된 것이다.
- Stretch의 경우 설정한 범위에 대해서 종횡비가 유지된다. 즉, 예제는 아래의 언리얼 공식 문서를 참고.
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/umg-anchors-in-unreal-engine-ui
유의사항. 항상 모든 위젯은 왼쪽 상단이 기준이 된다.

- 이 사실은 꽤나 중요하다. 위젯을 생성할때 계산된 위치에 배치를 한다고 하면, 그 위치는 위젯의 중간이 아니라 왼쪽 상단이라는 것! 위치가 이상할 경우 이 사실을 명심해라.
- 예를 들어, 뷰포트에서 (100, 200) 위치에 위젯을 배치했다고 한다면, (100, 200) 위치 = 위젯의 왼쪽 상단 꼭짓점 위치가 된다. 이게 싫다면 Alignment를 추가로 건드려야 한다.
UMG 화면 채우기 모드 옵션 드롭다운 메뉴 설명

- UMG 위젯 블루프린트(WBP)의 디자이너 탭 상단에는 화면 크기 드롭다운 메뉴가 있다. 이는 현재 위젯 블루프린트의 디자인 영역 크기를 어떻게 설정할 것인지 결정한다.
| 설정 값 | 실제 의미 | 용도 |
| Fill Screen | 위젯 블루프린트 디자인 영역의 크기를 선택된 뷰포트 해상도와 동일하게 설정 | UI가 뷰포트 전체를 기준으로 제작된 경우(HUD, 메인 메뉴 등) |
| Desired | 내부 콘텐츠 크기에 맞는 최소한의 공간으로 크기를 설정 | 다른 위젯에 삽입되는 위젯인 경우(서브 위젯) |
| Custom | 디자이너가 임의로 가로/세로 길이를 설정 | 해상도 상관없이 위젯이 고정된 크기를 가져야 하는 경우 |
| Custom On Screen | Custom으로 설정하되, 뷰포트 해상도 윤곽선을 표시. | 용도는 Custom과 완전히 동일. 그냥 윤곽선만 추가되는 것 |
| Desired On Screen | Desired로 설정하되, 뷰포트 해상도 윤곽선을 표시. | 용도는 Desired와 완전히 동일. 그냥 윤곽선만 추가되는 것 |
요약
- Fill Screen은 뷰포트 기준으로 할 때 사용
- Desired는 부모 위젯을 기준으로 할 때 사용
- Custom은 테스트용
