- Enemy가 적대관계의 피격범위에 들어갔다가 나왔을 때 멈추지 않고 같은 방향으로 돌진하는 버그
공격범위 밖일 때, Attack 상태를 빠져나가는 처리를 하지 않아서 그런 것이었다.
if (delta.sqrMagnitude > Range * Range)
{
if (delta.sqrMagnitude < 4 * Sight * Sight)
{
State.Current = CreatureState.Chase;
Debug.Log("공격범위 벗어남");
return;
}
}
공격범위를 벗어났고 시야범위에 있다면 Chase 상태가 되도록 조건을 걸었다.
- 피격 당하면 Idle 상태로 돌아가는 버그
피격 시, Idle로 전환되도록 임시 방편으로 설정해둔 코드 때문이었다.
if (hitInfo.Knockback.time > 0) {
CreatureState originState = State.Current; // 원래 상태 저장.
State.Current = CreatureState.Hit;
Velocity = (this.transform.position - attacker.CurrentPosition).normalized * hitInfo.Knockback.speed;
State.SetStateAfterTime(originState, hitInfo.Knockback.time); // 넉백 시간이 끝나면 원래 상태로 돌아간다.
}
Hit 상태 전의 상태를 저장한 뒤, 넉백 시간이 끝나면 돌아오도록 했다.
'부트캠프 > Project' 카테고리의 다른 글
Enemy - FSM(6) 트러블 슈팅 및 수정 (0) | 2024.02.16 |
---|---|
Enemy - FSM(5) Blend Tree(블렌드 트리) (0) | 2024.02.14 |
Enemy - FSM(3) (0) | 2024.02.13 |
Enemy - FSM(2) (0) | 2024.02.08 |
Enemy - FSM(1) (0) | 2024.02.07 |