[언리얼] 버그 - MoveCompleted

gest·2026년 2월 12일

unreal

목록 보기
11/11

최근 언리얼 개발을 진행하면서 보니까 enemy가 player를 따라가다가 허공에 주먹질하는 경우가 있었다.

...?

왜 그런지 몰라서 이번 시간에는 MoveCompleted를 분석할 것이다.


원리

왜 그런 오류가 생기는지 봤더니 추격하는 코드에 문제가 생겼다.
이동 중에 다시 MoveToActor를 실행하면 기존의 이동 명령은 취소된다.
그래서 명령이 취소된 나머지 MoveCompleted가 발동되는 것이고 함수안에 공격하는 기능이 있어서 허공에 주먹질하게 된거다.


코드

void AEnemy::MoveCompleted(FAIRequestID RequestID, const FPathFollowingResult& Result)
{
  //이 if문을 추가함
  if (Result.Code == EPathFollowingResult::Success)
  {
      if (CanAttack)
      {
          PlayAnimMontage(AttackMontage);
          CanAttack = false;
      }
  }
}

그래서 성공적으로 Player에게 도달한 경우에만 Result에 Success를 출력한다.


결과


추격이 잘 되는 것을 확인할 수 있다.

0개의 댓글