본문 바로가기

Engine/Unity 그때그때 끄적끄적

[Unity] 네비게이션

몬스터가 플레이어를 따라오게하는 기능을 구현하는경우 네비게이션 기능을 이용하면 쉽게 구현이 가능하다

 

우선 [Window] -> [AI] -> [Navigation]창이 필요하다 

 

 

게임을 플레이할 맵을 클릭한 다음에 object에서 Navigation Static을 체크한다

 

Terrain이나 Mesh Renderer 컴포넌트를 가진 게임 오브젝트만 Bake 하여 해당 구역만 내비게이션 영역으로 설정하겠다는 옵션이다

 

 

그다음에 Bake를 누르면 되는데 Bake는 CD를 굽는다는 말처럼 미리 계산을 해두어 사용하겠다는의미이다

실시간으로 연산을 하기에는 너무 많은 자원이 소모되기에 정적으로 존재하는 맵과 같은 경우는 미리 Bake하여 불필요한 연산을 줄이려는 방식이다

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;			// 반드시 추가해줘야함


public class EnemyControl : MonoBehaviour
{
    private NavMeshAgent navAgent;
    public GameObject Player;			// 타겟 게임 오브젝트

    private void OnEnable()
    {
        navAgent = gameObject.GetComponent<NavMeshAgent>();
    }
    
    void Update()
    {
        navAgent.SetDestination(Player.transform.position);
    }
}

간단하게 해당 적이 플레이어를 따라가는 스크립트이다 다른 옵션들

 

거리 반환하는 함수가 필요할경우 Vector3.Distance를 참고하여 사용할것

'Engine > Unity 그때그때 끄적끄적' 카테고리의 다른 글

[Unity] 애니메이션  (0) 2021.07.30
[Unity] 화면 전환  (0) 2021.07.14
[Unity] 싱글톤 패턴  (0) 2021.07.13
[Unity] CSV파일 읽고 사용하기  (0) 2021.07.11
[Unity] Sprite Atlas 활용하기  (0) 2021.07.08