Unity에서 NavMeshAgent 작업

Unity에서 NavMeshAgent는 게임의 캐릭터나 개체에 대한 경로 찾기 및 탐색을 구현할 수 있는 강력한 구성 요소입니다. Unity의 내장 탐색 시스템을 활용하여 NavMesh 표면의 경로를 계산합니다. 이 튜토리얼에서는 코드 예제를 통해 NavMeshAgent 설정 및 사용에 대한 기본 사항을 다룹니다.

전제 조건

  • Unity 인터페이스 및 게임 개발 개념에 대한 기본 이해.
  • Unity 시스템에가 설치되어 있습니다(버전 2017 이상).

NavMesh 설정 Unity

NavMeshAgent 사용에 대해 알아보기 전에 장면에서 NavMesh를 설정해야 합니다.

  1. NavMesh 표면 만들기:

    • 'GameObject -> 3D Object -> NavMesh Surface'로 이동합니다. 그러면 'NavMeshSurface' 구성요소가 연결된 새로운 GameObject가 생성됩니다.
    • 장면에 필요한 대로 NavMesh Surface 구성 요소의 설정을 조정합니다.
  2. NavMesh 굽기:

    • 'NavMesh Surface' 구성 요소에서 'Bake' 버튼을 클릭하여 장면에 대한 NavMesh를 생성합니다.
    • 정확한 경로 탐색이 가능하도록 환경(지형, 장애물 등)이 올바르게 구성되어 있는지 확인하세요.

코드에서 NavMeshAgent 사용

이제 NavMeshAgent를 사용하여 GameObject를 이동하는 코드를 작성해 보겠습니다.

1단계: NavMeshAgent를 GameObject에 연결

2단계: 이동 스크립트 작성

using UnityEngine;
using UnityEngine.AI;

public class PlayerController : MonoBehaviour
{
    private NavMeshAgent navMeshAgent;

    void Start()
    {
        navMeshAgent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        // Check for player input or any other conditions to trigger movement
        if (Input.GetMouseButton(0)) // Example: Move towards mouse click position
        {
            MoveToClickPosition();
        }
    }

    void MoveToClickPosition()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            // Move NavMeshAgent towards the clicked position
            navMeshAgent.SetDestination(hit.point);
        }
    }
}

3단계: 장면 설정 및 테스트

  • NavMeshAgent 및 연결된 스크립트가 포함된 GameObject가 장면에 있는지 확인하세요.
  • Unity 편집기에서 Play를 누르고 동작을 관찰합니다.
  • 'NavMesh' 표면의 아무 곳이나 클릭하면 GameObject가 해당 위치를 향해 이동해야 합니다.

요약

이 튜토리얼에서는 Unity에서 경로 찾기 및 탐색을 위해 NavMeshAgent를 설정하고 사용하는 방법을 배웠습니다. 다음 단계와 코드 예제를 따르면 Unity에 내장된 내비게이션 시스템을 사용하여 게임 내 캐릭터나 개체의 기본 움직임을 구현할 수 있습니다.