728x90
반응형
기본 몬스터로 사용할 오브젝트를 생성합니다.
리지드바디와 박스콜라이더, 에너미 스크립트를 추가합니다.
mat = GetComponentInChildren<SkinnedMeshRenderer>().material;
매쉬랜더러가 오브젝트의 하위 오브젝트에 스킨매쉬랜더러로 있기 때문에 Enemy 스크립트에서 수정해줍니다.
몬스터 오브젝트의 태그와 레이어를 Enemy로 수정하고 Nav Mesh Agent 컴포넌트를 추가합니다.
public Transform target; //추적할 대상의 좌표
NavMeshAgent nav;
void Awake()
{
nav = GetComponent<NavMeshAgent>();
}
void Update()
{
nav.SetDestination(target.position);//도착할 목표 위치 지정 함수
}
Enemy스크립트에 using UnityEngine.AI;를 선언한 뒤 스크립트를 추가해줍니다.
타깃에 플레이어를 드래그&드롭합니다.
추적을 위한 네비매쉬를 생성합니다.
몬스터가 플레이어를 추적하여 다가옵니다.
오류는 기존 피격 테스터에서 생기는 오류입니다.
이제 필요 없으니 지워줍니다.
void FreezeVelocity()
{
rigid.velocity = Vector3.zero;
rigid.angularVelocity = Vector3.zero;
}
void FixedUpdate()
{
FreezeVelocity();
}
물리력이 NavAgent 이동을 방해하지 않도록 로직을 추가합니다.
애니메이션을 세팅해줍니다.
파라메터와 트랜지션을 세팅하여 애니메이터를 완성합니다.
실행해보면 이동과 사망 애니메이션, 추적 모두 정상적으로 이루어집니다.
728x90
반응형
'유니티 > AA(3D 쿼터뷰 액션 게임)' 카테고리의 다른 글
AA(23) - 다양한 형태의 몬스터 공격 구현 (0) | 2021.09.27 |
---|---|
AA(22) - 캐릭터 피격 구현 (0) | 2021.09.27 |
AA(20) - 수류탄 구현 (0) | 2021.09.23 |
AA(19) - 벽 뚫기 방지 (0) | 2021.09.17 |
AA(18) - 공격 방향 설정 (1) | 2021.09.17 |