Unity 내비게이션 시스템 가이드
이 문서는 Unity의 내비게이션 시스템을 활용하여 캐릭터를 이동시키는 방법을 설명합니다. 내비메시 에이전트를 생성하고, 이를 통해 캐릭터가 목적지로 이동하도록 설정하는 방법을 다룹니다.
내비메시 개요
내비게이션 시스템은 게임 내 캐릭터가 환경을 인식하고 효율적으로 이동하도록 도와줍니다. 내비메시 에이전트를 활용하면 경로 탐색과 장애물 회피를 쉽게 구현할 수 있습니다.
내비메시 에이전트 생성
- 게임 오브젝트 생성
- Unity에서
GameObject
>3D Object
>Cylinder
를 선택하여 원기둥 형태의 캐릭터를 생성합니다. - 원기둥의 기본 크기(높이 2, 반경 0.5)는 휴머노이드 형태의 에이전트에 적합합니다.
- 내비메시 에이전트 컴포넌트 추가
- 생성한 원기둥에 내비메시 에이전트 컴포넌트를 추가합니다.
Component
>Navigation
>NavMesh Agent
- 스크립트 작성 및 할당
- 캐릭터가 목표 포인트로 이동하도록 하는 C# 스크립트를 작성합니다. 아래의 코드를 새로운 스크립트 파일인
MoveTo.cs
에 추가합니다.
```csharp using UnityEngine; using UnityEngine.AI;
public class MoveTo : MonoBehaviour { public Transform goal;
void Start () {
NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.destination = goal.position;
}
} ```
- 목표 오브젝트 생성
GameObject
>3D Object
>Sphere
를 선택하여 캐릭터가 도달할 목표를 생성합니다.- 생성한 구체를 내비메시 서피스 근처로 이동합니다.
- 스크립트 속성 설정
- 캐릭터에서
MoveTo
스크립트를 할당하고, 목표로 설정한 구체를Goal
프로퍼티에 지정합니다. - 플레이 모드 실행
- Play 버튼을 누르면 캐릭터가 구체의 위치로 이동하는 것을 확인할 수 있습니다.
활용 예제
- 복수의 목표 설정
- 여러 개의 목표 오브젝트를 생성하고, 이동할 목표를 순차적으로 업데이트하는 방식으로 캐릭터의 경로를 다양하게 설정할 수 있습니다.
- 장애물 회피
- 내비메시 장애물을 추가하여 캐릭터가 장애물을 인식하고 회피하는 경로를 자동으로 설정하게 할 수 있습니다.
- AI 캐릭터의 행동 패턴
- 특정 목표로 이동하고 도달했을 때 서로 다른 행동(예: 대화하거나 공격)을 추가하여 보다 실감 나는 AI 캐릭터를 구현할 수 있습니다.
추가 정보
- 내비게이션 방법: 내비메시 에이전트의 일반적인 사용 사례 및 소스 코드.
- 내비게이션 시스템의 내부 작업: 경로 따라가기에 대한 더 깊이 있는 정보.
- NavMesh Agent 컴포넌트 레퍼런스: NavMeshAgent 프로퍼티에 대한 상세 설명.
- NavMesh Agent 스크립팅 레퍼런스: 내비메시 에이전트 스크립팅 API 관련 정보.
위의 내용을 참고하여 Unity에서 내비게이션 시스템을 활용한 다양한 게임 기능을 구현해 보세요.