오늘 한일
- 과제5번 진행중(CoinGame)
UE5 HUD UI와 게임 데이터 연동
구현 내용
WBP_HUD위젯을 생성하여 현재 레벨, 웨이브, 점수, 남은 시간을 화면에 표시GameState와GameInstance의 데이터를 UMG 텍스트 바인딩으로 연결- 실시간으로 변경되는 게임 정보를 HUD에 자동 갱신되도록 구현
데이터 연동 구조
Get Game State
↓
Cast To OkGameState
↓
CurrentLevel / CurrentWave / RemainingTime 조회
↓
Text 반환
//GameMode/OkGameState.h
UPROPERTY(BlueprintReadOnly, Category = "GameStage")
int32 CurrentLevel = 1;
UPROPERTY(BlueprintReadOnly, Category = "GameStage")
int32 CurrentWave = 1;
UPROPERTY(BlueprintReadOnly, Category = "GameStage")
float RemainingTime = 30.0f;
//GameMode/OkGameInstance.h
// 💡 레벨(맵)이 전환되어도 파괴되지 않고 유지되어야 하는 데이터
UPROPERTY(BlueprintReadWrite, Category = "GameData")
int32 TotalScore = 0;문제 및 해결
문제 : UI에 값이 계속 0으로 표시되고 갱신되지 않음
원인
: 바인딩 함수에서 Cast 이후 실행선(Execution Line)이 Return 노드까지 연결되지 않았음
해결
: 데이터 핀뿐만 아니라 실행 흐름선도 끝까지 연결하여 정상적으로 값이 반환되도록 수정
/Unreal9기/첨부파일모음/Pasted-image-20260618212409.png)
배운 점
- 텍스트 바인딩은 데이터 변경을 UI에 쉽게 반영할 수 있지만, 실행 흐름이 올바르게 연결되어 있어야 정상 동작한다.
GameInstance를 활용하면 맵이 변경되어도 점수 같은 데이터를 유지할 수 있다.