[CommonUI] Request와 Layer의 역할

김여울·2025년 11월 27일

내일배움캠프

목록 보기
123/139

Request = “어떤 UI를 띄워줘!”
Layer = “어디(어떤 레이어)에 띄울까?”


Request 태그 = “무엇(Which)?”

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 태그는 무슨 화면/팝업을 띄울지 구분하는 용도

Layer 태그 = “어디(Where)?”

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를 어디에 올릴지 결정

Request + Layer = 1:1 또는 1:N 매핑이 가능

DataAsset(UIMap)에서 이 구조로 매핑됨:

Request 태그WidgetLayer
UI.Request.MainMenuWBP_MainMenuUI.Layer.Main
UI.Request.SettingWBP_SettingUI.Layer.Main
UI.Request.ConfirmExitWBP_ConfirmExitUI.Layer.Dialog
UI.Request.LoadingWBP_LoadingUI.Layer.Overlay

“MainMenu 띄워줘” → MainLayer

“ConfirmExit 띄워줘” → DialogLayer

“Loading 띄워줘” → OverlayLayer


비교해서 정리

Request = “메뉴 주문”

  • 김치찌개 주세요
  • 짜장면 주세요
  • 콜라 주세요

Layer = “어디에 놓을지”

  • 식탁
  • 사이드 테이블
  • 손님 앞
  • 그릇 선반

  • 김치찌개(메인 요리) → 메인 식탁
  • 콜라(보조) → 사이드 테이블
  • 영수증(팝업) → 손님 앞

구분하는 이유

1) UI가 여러 레이어 위에서 동시에 돌아갈 수 있게 하기 위해

  • MainMenu 나오고
  • 뒤에 Title 이미지 깔리고
  • 위에 Dialogue 팝업 뜨고
  • 위에 Overlay Loading 뜨고

2) 같은 레이어에 여러 화면이 스택처럼 쌓일 수 있도록 하기 위해

Layer는 스택 구조라서

  • MainMenu → Setting → Back → MainMenu
    이런 내비게이션이 가능함

0개의 댓글