언리얼엔진

44. LifeGauge(Player)

찬이2 2023. 7. 6. 15:46

Player LifeGauge 만들기

저번에 Enemy의 LifeGauge를 만들었다면 이번에는 Player의 LifeGauge를 만들어보자.

Enemy는 각자의 머리 위에 떠있었다면, Player는 보이는 플레이 화면에서 좌측상단에 위치하게 될 것이다.

 

먼저 Player 전용 WBP_PlayerGauge 위젯 블루프린트를 하나 생성했다.

 

WBP_PlayerGauge

위젯 블루프린트의 팔레트에 보면, 사용자 생성 탭에 우리가 만들었던 위젯들이 모여있는 것을 볼 수 있다.

여기서 WBP_Gauge 위젯을 가져다가 Canvas Panel 밑으로 넣어주었다.

 

* WBP_Gauge의 앵커를 좌측상단으로 올린 뒤, 슬롯은 조금 떨어진 곳에 위치시켜 크기 조절


계층 구조의 WBP_Gauge가 변수 설정되어있는지 확인 후, 그래프 탭에 넘어와서 저번에 만들었던 인터페이스BP_GaugeWidgetInterface를 WBP_PlayerGauge에 추가해준다.

인터페이스 추가

 

WBP_PlayerGauge 인터페이스에서 인터페이스 함수 Set GaugeColor / Ratio 이벤트를 가져와 각각 WBP_Gauge에 연결

* 외부 호출을 내부 호출로 연결해주는 중계의 역할

WBP_PLayerGauge 이벤트그래프


이제 BP_PlayerController로 와서 BeginPlay이벤트에 시퀀스를 하나 추가한 뒤, WBP_PlayerGauge의 위젯을 생성해줬다.

BP_PlayerController의 이벤트그래프 - BeginPlay이벤트

 

마찬가지로 BP_PlayerController에서도 BP_GaugeWidgetInterface를 추가하여,

Set Gauge Color / Ratio 이벤트를 만들어둔다.

BP_PlayerController의 이벤트그래프


BP_Player에서 Controller의 Set Gauge Color / Ratio를 호출해주는 부분을 만들게 됬다.

BP_Player의 BeginPlay 이벤트를 통해 Set Gauge Color 호출
BP_Player에서 함수 SetLifeNow 오버라이드


* BP_Player에서 BP_PlayerController / BP_PlayerController에서 WBP_PlayerGauge 순으로 호출이 넘어간다.