본문 바로가기

내일 배움 캠프/TIL

[내일 배움 캠프] 53일차 TIL

[UIManager 설계]

Scene UI, Popup UI, Toast 등 다양한 형태가 혼합되어 있으며 이를 효율적으로 관리하기 위해 설계됨

 

설계 목적

    ● UI 유형별 명확한 분리 (SceneUI, PopupUI, ToastUI)

    ● Canvas 정렬 및 스케일 통일

    ● Popup의 스택 기반 관리로 순차 처리

    ● Toast 메시지 자동 제거

    ● 풀링 기반 서브 아이템 생성 (성능 최적화)

 

구조의 장점

기능 장점
책임 분리 각 UI 타입이 명확히 나뉘어 유지보수가 쉬움
정렬 우선순위 보장 _order와 _toastOrder로 Canvas Sorting 관리
TimeScale 동기화 게임 씬과 UI의 일시 정지 처리 등 동기화
풀링 지원 MakeSubItem, ShowToast 등에서 Instantiate 대신 Pool 활용
자동 닫힘 처리 Toast는 일정 시간 후 자동 제거 처리

 

UI 유형별 구조

    ● Scene UI

        ○ 게임 씬 전반을 구성하는 UI

        ○ 하나만 존재할 수 있음

 

    ● PopupUI

        ○ UI 스택으로 관리됨

        ○ 닫기 시 순서 보장 (Stack 기반)

 

    ● Toast UI

        ○ 일회성 메시지 출력

        ○ 코루틴으로 1초 후 자동 제거

 

    ● SubItem 생성 (풀링 지원)

        ○ 아이템 목록, 인벤토리 셀 등 반복적인 UI 생성 시 활용

        ○ Transform이 비활성화 상태일 경우 Root로 대체

 

    ● Canvas 설정 정리

        ○ 정렬 순서(sortingOrder)는 _order 또는 _toastOrder로 관리

        ○ 모든 UI에 CanvasScaler와 GraphicRaycaster 자동 설정

        ○ 기준 해상도: 1440x3040