좀비의 상태는 idle, move, chase 세 개로 했습니다.
idle에 진입하기 전 몇 초동안 가만히 있을지 계산해서 그 시간만큼 가만히 있다가 일정 시간이 지나면 현재 상태를 move로 바꿔주었습니다.
move에 진입하기 전에는 얼마나, 어떤 방향으로 이동할지 계산해주고 그 만큼 이동하면 다시 idle상태로 돌아가도록 했습니다.
chase상태는 Player를 쫓아가는 상태인데 Player와의 위치를 계속해서 계산하다가 일정 범위 내에 Player가 들어오면 쫓아가도록 했습니다.
이 때 Player의 transform.position을 직접 참조하는 것이 아니라 해당 값을 따로 targetPos에 저장하고 해당 position으로 이동하도록 했습니다.
범위 내에 Player가 존재하면 계속해서 targetPos를 업데이트 할 수 있도록 했고
만약 Player가 범위에서 벗어나게 되면 가장 최근에 저장된 targetPos로 이동하게 됩니다. 만약 targetPos에 도착하게 되면 다시 idle 상태에 진입하도록 했습니다.
좀 멍청해보였으면 해서 좀비끼리는 충돌을 감지하지 않도록 했습니다.
Player가 범위 내에 들어왔을 때 Player 방향으로 Ray를 쏴 벽이 있다면 Player가 범위 내에 들어와도 감지하지 못하도록 할 예정입니다.
그리고 chase일 때는 move일 때 보다 더 빠르게 움직이도록 할 생각입니다.
진짜 탑뷰네
일지추