현재 진행하고 있는 Loglike 프로젝트에서 Parrying System을 MonsterBase에 구현한다.
Usecase는 근접몬스터가 캐릭터에게 공격을 했을 때 캐릭터의 상태가 Parrying상태라면 밀려나며 스턴상태에 빠지게된다.
if (LoglikeCharacter->GetIsParrying())
{
UNiagaraFunctionLibrary::SpawnSystemAtLocation(GetWorld(), SparkN, GetActorLocation(), GetActorRotation());
if (Cast<AMeleeMonsterBase>(this))
{
Cast<AMeleeMonsterBase>(this)->Stun();
}
}
방향벡터 구하기: 캐릭터->몬스터의 방향벡터를 구한다.
밀려나갈 위치 구하기: 방향벡터*100.f 탐색
몬스터와 해당 위치 사이 물체가 있다면
해당 위치 구하기
오차범위 빼주기: 해당위치로 움직이면 벽에 박히게 되니, 몬스터 캡슐크기만큼 차감
최종결과: Move Location으로 이동
몬스터와 해당 위치 사이 아무것도 없다면 Trace 마지막 위치로 이동
unreal is real?