Request = “어떤 UI를 띄워줘!”
Layer = “어디(어떤 레이어)에 띄울까?”
UI를 요청하는 키(Key)
UI.Request.MainMenu
UI.Request.Setting
UI.Request.PauseMenu
UI.Request.ConfirmExit
✔ Request 태그는 Subsystem의 입력(요청)
ShowWidget을 호출할 때 사용하는 태그:
UIManager->ShowWidget(UI_Request_MainMenu);
“Subsystem아, MainMenu UI 좀 띄워줘.”
Request 태그는 무슨 화면/팝업을 띄울지 구분하는 용도
UI가 띄워질 공간(레이어)을 지정하는 태그
UI.Layer.Main
UI.Layer.Dialog
UI.Layer.Overlay
UI.Layer.HUD
✔ Layer 태그는 PrimaryLayout이 사용하는 태그
PrimaryLayout은 여러 레이어(위젯 스택)를 가지고 있고
LayerTag로 그 스택을 찾음
GetLayerWidget(UI_Layer_Main);
“Main 레이어(메인 화면용 스택)를 찾아줘.”
UI.Request는 어떤 UI를 띄울지 결정
UI.Layer는 그 UI를 어디에 올릴지 결정
DataAsset(UIMap)에서 이 구조로 매핑됨:
| Request 태그 | Widget | Layer |
|---|---|---|
| UI.Request.MainMenu | WBP_MainMenu | UI.Layer.Main |
| UI.Request.Setting | WBP_Setting | UI.Layer.Main |
| UI.Request.ConfirmExit | WBP_ConfirmExit | UI.Layer.Dialog |
| UI.Request.Loading | WBP_Loading | UI.Layer.Overlay |
“MainMenu 띄워줘” → MainLayer
“ConfirmExit 띄워줘” → DialogLayer
“Loading 띄워줘” → OverlayLayer
Request = “메뉴 주문”
Layer = “어디에 놓을지”
Layer는 스택 구조라서