언리얼 - 게임 개발

첫 게임 개발 (12) _ Inventory _ 체력 UI 구현

earth-star 2024. 6. 21. 23:27

체력 UI 구현을 위해서 하트 텍스처를 할당해 볼 것이다.

 

Percent 변수의 디테일에서 스폰시 노출을 체크하여 위젯을 부를때 Percent 값을 할당 할 수 있도록 한다.

 

PrintString을 다 지우고 Create WBP Heart Widget을 각각 추가하고 각 Percent에 알맞는 값을 입력한다.

Add Child 함수를 이용하여 HealthBar에 입력되도록 한다.

 

위와 같이 체력이 줄어들면 그에 맞춰서 줄어드는 체력 UI를 확인 할 수 있다.

 

WBP_HealthBar의 복잡한 노드들을 함수로 묶어 Update Health Bar로 이름 붙인다.

이는 뒤에서 체력이 변하는 상황에서 편하게 함수로 불러오기 위함이다.

 

인벤토리를 열지 않고서도 바로 체력을 볼 수 있도록 BPC_Inventory에서 Create Widget 함수로 WBP_HealthBar를 추가하고 변수로 저장 후 Add Viewport를 추가한다.

 

BPC_DamageSystem에서 Heal 함수와 TakeDamage 함수가 체력이 변하는 함수이므로 여기에 UpdateHealthBar 함수를 적용하기 위해서 위와 같이 BP_Player를 캐스트하여 변수로 저장한다.

 

BP_Player, BPC_Inventory, WBP_HealthBar으로 UpdateHealthBar 함수를 Heal함수에 적용한다.

 

TakeDamage 함수도 마찬가지로 UpdateHealthBar 함수를 적용한다.

 

체력이 차는 상황을 확인하기 위해서 BP_Player에서 임시로 N키에 Heal 함수를 지정하였다.

 

시작 시 왼쪽 상단에 체력 UI가 보이지만 너무 가장자리에 붙어있어 위치를 조정하려고 한다.

 

위와 같이 Set Position in Viewport 함수를 이용하여 위치를 조정한다.

 

데미지를 입었을 때 체력이 감소하는 것과 N키를 눌러 체력회복 둘 다 잘 적용되는 것을 볼 수 있다.