본문 바로가기

Unreal/Udemy 강의

Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-22

TakeDamage 함수 오버라이드하기

이번에 액터에 데미지를 입히게 되는데, ACtor의 TakeDamage 가상 함수 오버라이드를 통해서 구현해보게 된다.

먼저 해당 함수의 원형을 캐릭터 클래스에 선언해주자.

 

그리고 캐릭터의 최대 체력과 현재 체력을 표시할 변수를 선언해주자.

 

게임이 시작할 때 현재 체력을 최대 체력으로 설정해주자.

 

이제 선언했던 TakeDamage 함수를 구현해보자.

Super를 통해서 부모 함수의 기능을 가져오고, 리턴값인 적용 데미지 값이 float 값이기에 해당 변수를 선언해서 리턴값을 받아주자.

 

이후 해당 값을 토대로 현재 체력에서 값을 감소시켜주면 된다.

체력이 음수로 가면 안되기에 만약 데미지 수치가 현재 체력보다 높다면 Min 함수를 통해서 더 작은 값을 데미지로 정하여 체력이 음수로 가는 것을 방지한다.

 

이렇게 감소시킨 체력을 확인하기 위해 로그 메시지로 출력해주고, 바뀐 체력을 반환 해주면 된다.