Deny
Deny | Ragdoll | Unreal Engine 5 | C++ | 언리얼엔진
mane
2024. 2. 22. 00:59
728x90
반응형
인사말
안녕하세요. 이번 포스트에서는 개인 프로젝트로 진행하는 Deny 에 대해 작성하겠습니다.
내용
이번 작업 내용은 좀비로 쓰일 캐릭터를 데미지 입히고 죽으면 래그돌 시키는 작업을 하였습니다.
코드
간략히 코드를 첨부하겠습니다.
// ApplyPointDamage 로 데미지를 줍니다.
if(ABaseZombie* Zombie = Cast<ABaseZombie>(OtherActor))
{
UGameplayStatics::ApplyPointDamage(Zombie,BulletDamage,HitDirection,Hit,InstigatedBy,this,UDamageType::StaticClass());
}
OnTakePointDamageEvent 이벤트를 바인딩합니다.
this->OnTakePointDamage.AddDynamic(this, &ThisClass::OnTakePointDamageEvent);
맞은 방향과 Bone Name을 얻고 머리를 맞으면 바로 죽음 처리를 하였습니다.
void ABaseZombie::OnTakePointDamageEvent(AActor* DamagedActor, float Damage, AController* InstigatedBy,
FVector HitLocation, UPrimitiveComponent* FHitComponent, FName BoneName, FVector ShotFromDirection,
const UDamageType* DamageType, AActor* DamageCauser)
{
DamagedDirection = ShotFromDirection;
DamagedBoneName = BoneName;
UE_LOG(LogTemp, Error, TEXT("DamagedBoneName : %s, Causer : %s"), *DamagedBoneName.ToString(), *DamageCauser->GetName());
if(DamagedBoneName == "head")
{
Health = 0.f;
Die();
return;
}
DecreaseHealth(Damage);
}
//
void ABaseZombie::DecreaseHealth(const float Damage)
{
Health -= Damage;
if(Health <= 0.f)
{
Health = 0.f;
Die();
}
}
영상
728x90
반응형