▣ 먼저 대미지를 줄 플레이어 c++에서 ApplyDamage() 함수를 사용하기 위해 필요한 #include "Kismet/GameplayStatics.h" 헤더를 추가하고 ApplyDamage() 매개변수에 맞게 코드를 작성합니다.
▣ 대미지를 받을 c++ 헤더파일로 가서 TakeDamage() 함수를 선언하고 cpp파일에서 TakeDamage를 받는 경우에 대한 코드를 작성합니다.
ApplyDamage로 대미지를 줄 때 TakeDamage()가 호출됩니다. 블루프린트와 C++에서 사용하는 방법이 다릅니다.
▣ ApplyDamage : 기본 대미지 함수.
▣ ApplyPointDamage : 대미지를 대미지를 주는 위치의 정보를 얻고 주는 위치마다 다르게 대미지를 줄 수 있는 함수
▣ ApplyRadialDamage : 범위 대미지를 주는 함수
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Game/GetInstigatorController/
▣ 저장 및 컴파일 후 플레이해 보면 위에 이미지처럼 LineTrace를 대미지를 주고 사라지는 효과를 확인할 수 있습니다.
▣ 이번에는 ApplyPointDamage() 함수로 변경하여 코드를 작성하고
대미지를 받는 헤더에 필요한 #include "Engine/DamageEvents.h" 헤더를 추가하고 cpp코드에서 TakeDamage() 함수 안에서 FPointDamageEvent로 ApplyPointDamage()로 호출했는지에 대한 여부를 확인하는 코드 후 충돌한 BoneName()이 맞으면 그 부위에 맞게 대미지를 주는 코드를 완성합니다.
▣ 저장 및 컴파일 후 부위에 맞게 Trace를 발사하면 위에 이미지처럼 head에 대한 TEXT가 출력되는 걸 확인할 수 있습니다.
'[ Unreal5 ] > - 언리얼엔진5 실습' 카테고리의 다른 글
언리얼엔진5 Door Passworld System (0) | 2024.05.13 |
---|---|
언리얼엔진5 c++ CameraShake (0) | 2024.05.12 |
언리얼엔진5 SpawnAIFromClass (0) | 2024.05.09 |
언리얼엔진5 Mirror System (0) | 2024.05.07 |
언리얼엔진5 Inventory DataTable save (0) | 2024.05.06 |
댓글