[CH3-01] UI 전체 기획 및 구조 설계

김여울·2025년 8월 1일

내일배움캠프

목록 보기
52/139

구조 예시 (C++ 위젯 클래스 + BP 디자인)

📁 UI 구조 분리
│
├─ 📍 MainMenu 
│   ├─ 시네마틱 배경
│   ├─ Game Start / Quit
│
├─ 📍 PauseMenu 
│   ├─ Resume / Back to Main
│
├─ 📍 GameOver 
│   └─ 캐릭터 사망 시 → UI 띄움
│
├─ ⚙️ InGameHUD 
│   ├─ 무기 이름 (`Pump Shotgun`)
│   ├─ 발사 방식 (`Single Fire`)
│   ├─ 무기 아이콘
│   ├─ 남은 탄약 (CurrentAmmo)
│   ├─ 전체 탄약 (MaxAmmo)
│   ├─ 탄창 개수
│   ├─ 수류탄 개수 (선택사항)
│   └─ → 무기 변경 / 탄약 변화 / 탄창 변화 시 UI 자동 반영
│
└─ 🧠 델리게이트 
    ├─ ✅ `OnWeaponChanged(FWeaponData)`  
    ├─ ✅ `OnAmmoChanged(int32 Current, int32 Max)`
    ├─ ✅ `OnMagazineChanged(int32 Count)`  
    ├─ ✅ `OnGrenadeChanged(int32 Count)` (필요 시)
    └─ ✅ `OnCharacterDead()`

역할 분리

기능구현 방식설명
MainMenu UIUI는 BP + 기능은 C++영상은 MediaPlayer / 버튼 사운드, 효과는 BP / 레벨 이동은 C++
PauseMenu UIUI는 BP + 기능은 C++버튼 사운드, 효과는 BP / 레벨 이동은 C++
GameOver UIUI는 BP / 델리게이트는 C++캐릭터에서 사망 이벤트 발생 시 UI로 알림
InGame HUDUI는 BP + 기능은 C++무기/탄약 상태 표시. 무기와 캐릭터에서 정보 받음
무기 정보 UI 반영C++ 델리게이트 + C++ 위젯 바인딩무기 클래스에 OnWeaponChanged 델리게이트 선언
탄약 정보 UI 반영C++ 델리게이트무기 or 캐릭터 클래스에서 OnAmmoChanged 델리게이트 호출
게임오버 처리C++ 캐릭터 → UI 델리게이트 호출죽었을 때 위젯 생성해서 띄움

델리게이트

캐릭터가 무기를 교체 →

무기 클래스에서 델리게이트 발생 →

UI 위젯(C++)에서 델리게이트를 바인딩 →

무기 이름/아이콘 갱신

0개의 댓글