Unreal C++ · HUD update

값은 캐릭터에서 바뀌고, 화면 갱신은 HUD 위젯에서 끝납니다

데이터 바인딩과 직접 함수 호출을 비교할 때 핵심은 누가 값을 만들고, 누가 전달하며, 누가 표시만 담당하는지 나누어 보는 것입니다.

1

게임 상태 변경

AMyCharacter가 데미지, 발사, 회복으로 체력과 탄약 값을 갱신합니다.

2

컨트롤러로 통지

OnHealthChangedOnAmmoChanged가 HUD 인스턴스 접근 지점을 한곳으로 모읍니다.

3

위젯 함수 호출

UpdateHealth, UpdateAmmo는 ProgressBar와 TextBlock만 바꿉니다.

4

표시 상태 확정

위젯은 표시 로직만 가지므로 게임 규칙 변경과 UI 수정이 서로 덜 얽힙니다.

직접 호출이 선명한 경우

C++ 중심
변경 시점

체력과 탄약이 바뀐 순간만 HUD에 알려 불필요한 반복 계산을 줄입니다.

디버깅

호출 스택이 캐릭터에서 컨트롤러, 위젯으로 이어져 추적이 단순합니다.

바인딩을 쓸 때 확인할 점

Designer
이름 연결

BindWidget 변수명, 위젯 이름, Is Variable 설정이 모두 맞아야 합니다.

의존성

블루프린트 함수가 캐릭터 캐스팅과 포맷팅까지 품으면 UI 쪽 의존성이 커집니다.