Unity 내비게이션 작업 매뉴얼
이 문서는 Unity의 내비게이션 시스템에 대해 설명하고, NavMeshAgent를 사용하는 기본적인 방법을 안내합니다.
내비게이션 작업 수행하기
Unity에서는 NavMeshAgent를 통해 게임 오브젝트가 목표 지점으로 자동으로 이동할 수 있습니다. 아래는 기본적인 구성 요소 및 스크립트입니다.
NavMeshAgent 설정
NavMeshAgent는 이동할 목표 지점을 설정하기 위해 destination
프로퍼티를 사용합니다. 이 프로퍼티의 값으로 목표 위치를 할당하면, 에이전트가 그 위치로 이동합니다.
간단한 예제 스크립트
아래는 목표 위치를 설정하는 간단한 C# 스크립트입니다. 이 스크립트는 게임 객체에 부착되어야 하며, goal
변수를 통해 목표 지점을 설정합니다.
// MoveDestination.cs
using UnityEngine;
public class MoveDestination : MonoBehaviour {
public Transform goal;
void Start () {
NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.destination = goal.position;
}
}
사용 방법
- 게임 오브젝트에 NavMeshAgent 추가: Unity 에디터를 사용하여 원하는 게임 오브젝트에 NavMeshAgent 컴포넌트를 추가합니다.
- 목표 설정:
goal
변수를 통해 목표 위치를 설정합니다. 이 변수를 Unity 에디터의 인스펙터 뷰에서 드래그 앤 드롭으로 설정할 수 있습니다. - 스크립트 부착: 위의 스크립트를 게임 오브젝트에 추가합니다.
마우스 클릭으로 에이전트 이동
마우스 클릭으로 이동하도록 에이전트를 설정하는 방법도 있습니다. 이를 위해, 아래의 코드를 참고하시기 바랍니다.
using UnityEngine;
using UnityEngine.AI;
public class ClickToMove : MonoBehaviour
{
public Camera camera;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.SetDestination(hit.point);
}
}
}
}
사용 방법
- 스페이스에 적절한 카메라 추가: ClickToMove 스크립트를 추가할 게임 오브젝트에 카메라를 설정합니다.
- 스크립트 실행: 게임을 실행하고 마우스로 클릭하면 에이전트가 클릭한 위치로 이동합니다.
결론
Unity의 내비게이션 시스템을 활용하면 게임 개발 시 에이전트의 이동을 신속하게 처리할 수 있습니다. 에이전트의 목적지를 쉽게 설정하고, 마우스 클릭을 통해 사용자와 상호작용할 수 있는 기능을 구현하는 것이 가능한 것입니다.
이 문서를 통해 Unity의 기능을 보다 효과적으로 활용하시길 바랍니다!