소유 플레이어의 Character와 PlayerState 중 값의 수명과 복제 범위에 맞는 출처를 고릅니다.
HUD는 값을 계산하기보다 게임 상태를 정확히 표시합니다
데이터 바인딩은 편하지만 매 프레임 평가 비용이 생길 수 있어, 값이 바뀌는 순간에 UI를 갱신하는 구조를 우선합니다.
체력, 탄약, 점수는 Character, PlayerState, GameState 같은 소스에서 바뀌고 HUD는 이벤트나 OnRep 알림을 받아 표시만 바꿉니다.
값 변경 함수에서 Delegate를 호출해 UI가 Tick으로 계속 물어보지 않게 합니다.
멀티플레이 값은 ReplicatedUsing 알림에서 클라이언트 HUD 갱신을 연결합니다.
TextBlock, ProgressBar 참조는 BindWidget으로 잡고 매번 FindWidget하지 않습니다.
- Tick 바인딩 남용 금지
- 값 변경 순간에 갱신
- 서버와 클라이언트 소스 구분