1. ApplyPointDamage
UGameplayStatics::ApplyPointDamage(
OtherActor,
Damage,
GetActorForwardVector(),
SweepResult,
GetInstigatorController(),
this,
UDamageType::StaticClass()
);
해당 함수로 캐릭터의 부위 파괴, 타격 기능을 구현할 수 있다.
2. TakeDamage
float ABoss::TakeDamage(float DamageAmount, struct FDamageEvent const& DamageEvent, class AController* EventInstigator,
AActor* DamageCauser)
{
const float Damage = Super::TakeDamage(DamageAmount, DamageEvent, EventInstigator, DamageCauser);
// 부위 타격 정보
if (DamageEvent.IsOfType(FPointDamageEvent::ClassID))
{
const FPointDamageEvent* PointDamage = static_cast<const FPointDamageEvent*>(&DamageEvent);
FHitResult HitResult = PointDamage->HitInfo;
if (HitResult.BoneName != NAME_None)
{
LOG(TEXT("Hit Bone: %s"), *HitResult.BoneName.ToString());
}
if (HitResult.PhysicsObjectOwner.IsValid())
{
FName RegionName = *HitResult.PhysicsObjectOwner->GetName();
LOG(TEXT("%s"), *RegionName.ToString());
}
if (HitResult.ImpactPoint != FVector::ZeroVector)
{
LOG(TEXT("Damage Location: %s"), *HitResult.ImpactPoint.ToString());
}
}
return Damage;
}

'언리얼 엔진 > 트러블슈팅' 카테고리의 다른 글
| [언리얼엔진] 3D NavMesh (Flying Navigation System) (1) | 2025.06.05 |
|---|---|
| [언리얼엔진] Behavior Tree 인스턴스 (1) | 2025.05.28 |
| [언리얼엔진] Simulate Physics + Physics Asset (0) | 2025.05.20 |
| [언리얼엔진] 렌더링 최적화 팁 (0) | 2025.05.20 |
| [언리얼엔진] 범위 공격 - RadialDamage (1) | 2025.05.15 |