본문 바로가기

게임프로그래밍/실습1

[언리얼 실습] 62. 에너미가 타격을 받으면 플레이어를 추격하기


목차

  1. 에너미가 피해를 입으면 반응하기

1. 에너미가 피해를 입으면 반응하기

 

에너미가 피해를 입었을때 플레이어가 추격 사거리 안에 있으면 플레이어를 쫒아가게 할 것이다. 에너미의 상태 열거형이 존재하고 이에 따른 반응도 구현하였기 때문에 이를 구현하는 것은 매우 간단한 작업이 될 것이다.

 

float AEnemy::TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser)
{
	if (Attributes && HealthBarWidget)
	{
		Attributes->ReceiveDamage(DamageAmount);
		HealthBarWidget->SetHealthPercent(Attributes->GetHealthPercent());
	}

	CombatTarget = EventInstigator->GetPawn();
    // 이 아래로 추가
	EnemyState = EEnemyState::EES_Chasing;
	GetCharacterMovement()->MaxWalkSpeed = 300.f;
	MoveToTarget(CombatTarget);

	return DamageAmount;
}

 

에너미의 상태를 추격으로 바꾸고 속도를 올린뒤 타겟에게 이동시키면 된다.

 

이제 에너미의 추격반응을 만들었으니 에너미가 공격할 차례이다. 에너미에게 무기를 쥐어준 후 공격 로직을 만들어보고자 한다.