체력 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키를 눌러 체력회복 둘 다 잘 적용되는 것을 볼 수 있다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발 (14) _ 능력 구현 (1) | 2024.06.23 |
---|---|
첫 게임 개발 (13) _ 벽 슬라이딩, 벽 점프, 대쉬 구현 (0) | 2024.06.22 |
첫 게임 개발 (11) _ Inventory _ UI 및 체력시스템 설계하기 (0) | 2024.06.21 |
첫 게임 개발 (10) _ Inventory _ 위젯 구현하기 (0) | 2024.06.21 |
첫 게임 개발(9) _ Inventory _ 돈 구현하기 (0) | 2024.06.21 |