Version: 5.3
고급 내비메시 베이크 설정
내비메시 장애물 생성

내비메시 에이전트 생성

게임 레벨의 내비메시를 베이크한 경우 씬 안에서 이동할 캐릭터를 생성합니다. 실린더로 프로토타입 에이전트를 빌드한 뒤 움직여 보겠습니다. 이 작업은 NavMesh Agent 컴포넌트와 간단한 스크립트를 통해 이루어집니다.

먼저 캐릭터를 생성합니다.

  1. 원기둥을 생성합니다. 게임 오브젝트(GameObject) > 3D 오브젝트(3D Object) > 원기둥(Cylinder).
  2. 디폴트 원기둥 크기(높이 2와 반경 0.5)는 휴머노이드 형태의 에이전트에 적합하므로 원기둥 형태로 둡니다.
  3. 내비메시 에이전트 컴포넌트를 추가합니다. 컴포넌트(Component) > 내비게이션(Navigation) > 내비메시 에이전트(NavMesh Agent).

이제 간단한 내비메시 에이전트를 생성했으며 커맨드를 내릴 수 있습니다.

내비메시 에이전트로 실험을 시작하려면 캐릭터 크기와 속도에 맞춰 크기를 조정해야 합니다.

내비메시 에이전트 컴포넌트가 경로 탐색과 캐릭터의 움직임 조절까지 다룹니다. 스크립트에서 내비게이션으로 원하는 목표 포인트를 설정하면 내비메시 에이전트가 나머지 항목을 자동으로 처리합니다.

    // MoveTo.cs
        using UnityEngine;
        using System.Collections;
    
        public class MoveTo : MonoBehaviour {
       
           public Transform goal;
       
           void Start () {
              NavMeshAgent agent = GetComponent<NavMeshAgent>();
              agent.destination = goal.position; 
           }
        }

다음으로 간단한 스크립트를 빌드하여 또 다른 게임 오브젝트로 지정된 목표와 목표로 설정된 구체에 캐릭터를 보낼 수 있습니다.

  1. C# 스크립트(MoveTo.cs)를 생성하고 위의 스크립트로 콘텐츠를 작성합니다.
  2. 생성한 캐릭터에 MoveTo 스크립트를 할당합니다.
  3. sphere를 생성하여 에이전트가 도달할 목표로 만듭니다.
  4. 캐릭터에서 구체를 NavMesh Surface에 가까운 위치로 옮깁니다.
  5. 캐릭터를 선택하고 MoveTo 스크립트를 지정한 뒤 구체를 Goal 프로퍼티에 할당합니다.
  6. Play 버튼을 누릅니다. 에이전트가 구체의 위치로 이동하는 것을 볼 수 있습니다.

To sum it up, in your script, you will need to get a reference to the NavMesh Agent component and then to set the agent in motion, you just need to assign a position to its destination property. The Navigation How Tos will give you further examples on how to solve common gameplay scenarios with the NavMesh Agent.

추가 정보

고급 내비메시 베이크 설정
내비메시 장애물 생성