NavMeshAgent - 게임오브젝트의 Navigation 정보를 분석하여 목표물을 추적하게 하는 컴포넌트(적을 추적할 때 유용)
※ Navigation Static 옵션을 이용해서 장애물을 회피하게도 할 수 있음.
Component 추가 선택(Add Component 또는 메뉴에서 Component 선택)
Navigation -> NavMeshAgent 추가.
Source
=========================================================================================================
public void Monster1 : MonoBehavior{
private Transform targetTr;
private Transform thisTr;
private NavMeshAgent nma;
void Start()
{
// 추적할 타겟
targetTr = GameObject.Find("Target이 될 오브젝트").GetComponent<Transform>();
// 타겟을 추적할 게임오브젝트
thistr = GetComponent<Transform>();
// 지정된 오브젝트에 NavMeshAgent 를 nma 변수에 할당
nma = GetComponent<NavMeshAgent>();
}
void Update()
{
// 타겟 대상의 위치 설정. 위치 설정시 바로 추적 시작.
nma.destination = targetTr.position;
}
}
※ NavMeshAgent.destination = 추적할 목표의 위치의 설정값. 설정시 바로 추적 시작.
NavMeshAgent.SetDestination(Vector3 target) - 목적지 설정
NavMeshAgent.stop = 추적 중지.
=========================================================================================================
Update 구문에 놓는 것보다 코루틴을 이용해서 하는 방법이 좋음.
'프로그래밍 정리 > Unity' 카테고리의 다른 글
[Unity - 유니티] Animator, 현재 수행 중인 애니메이션 State 가져오기 - Animator.GetCurrentAnimatorStateInfo (1) | 2014.06.05 |
---|---|
[Unity - 유니티] Vector3.Distance - 오브젝트간의 거리 측정(Player와 적사이의 거리 측정시 유용) (0) | 2014.06.04 |
[Unity - 유니티] 네비게이션 - 적(AI)이 장애물로 파악하게 만들기 (0) | 2014.06.04 |
[Unity - 유니티] 어트리뷰트 - RequireComponent(컴포넌트를 삭제하는것을 방지하기 위한 어트리뷰트) (0) | 2014.06.04 |
[Unity - 유니티] AudioSource, AudioListener (0) | 2014.06.04 |