오늘은 몬스터 ai 를 구현해보려한다.
코드를 작성해준후
ChangeState 에서 로밍 상태일때 start 코루틴 해준다 . 이런식으로 몬스터가 돌아다니게된다 . 이제 몬스터가 피격시 피격대상을 타겟으로 설정하고 달려오게 만들려고한다 . 그 부분을 구현하다가 저녁약속이 생겨서 오늘은 여기까지만 구현하고 내일 아침일찍부터 구현하려한다. 기본 몬스터로 사용할 오브젝트를 생성합니다. 리지드바디와 박스콜라이더, 에너미 스크립트를 추가합니다.
매쉬랜더러가 오브젝트의 하위 오브젝트에 스킨매쉬랜더러로 있기 때문에 Enemy 스크립트에서 수정해줍니다. 몬스터 오브젝트의 태그와 레이어를 Enemy로 수정하고 Nav Mesh Agent 컴포넌트를 추가합니다.
Enemy스크립트에 using UnityEngine.AI;를 선언한 뒤 스크립트를 추가해줍니다. 타깃에 플레이어를 드래그&드롭합니다. 추적을 위한 네비매쉬를 생성합니다. 몬스터가 플레이어를 추적하여 다가옵니다. 오류는 기존 피격 테스터에서 생기는 오류입니다. 이제 필요 없으니 지워줍니다.
물리력이 NavAgent 이동을 방해하지 않도록 로직을 추가합니다. 애니메이션을 세팅해줍니다. 파라메터와 트랜지션을 세팅하여 애니메이터를 완성합니다. 실행해보면 이동과 사망 애니메이션, 추적 모두 정상적으로 이루어집니다. |