본문 바로가기

Unreal/언리얼 엔진 5로 개발하는 멀티플레이어 게임(Book)

[Unreal] US_Minion.cpp (체력)

사망처리

void AUS_Minion::PostInitializeComponents()
{
    ...
    OnTakeAnyDamage.AddDynamic(this, &AUS_Minion::OnDamage);
    ...
}

void AUS_Minion::OnDamage(AActor* DamagedActor, float Damage, const UDamageType* DamageType, AController* InstigatedBy, AActor* DamageCauser)
{
    Health -= Damage;
    if (Health > 0)
        return;

    if (SpawnedPickup)
    {
        GetWorld()->SpawnActor<AUS_BasePickup>(SpawnedPickup, GetActorLocation(), GetActorRotation());
    }
    Destroy();
}

 

이번에는 데미지를 처리하기 위한 코드가 작성되어 있다. 코드의 내용은 데미지가 0 이하가 되면 골드 코인을 떨어뜨리는 것이다. 슬슬 코드를 분석하는 데 어려움은 없어졌다. 봐야 할 점은 언리얼에서는 월드에 오브젝트를 생성할 때 GetWorld()->SpawnActor<T>()를 사용하는 정도이다.