네비게이터
NavigatorSystem
은 3D NavMesh에서 엔티티를 탐색하는 메커니즘을 제공합니다. Navigator
컴포넌트는 일반적으로 내비게이션 컴포넌트에서 발견되는 이동 동작을 캡슐화합니다. Navigator
는 별도의 내비게이션 엔티티로 위로 이동하고 Transform3D
를 사용하고 Transform3D
컴포넌트를 사용하여 위치와 움직임을 계산합니다. 원시 엔티티의 Transform3D
는 내비게이션의 Transform3D
와 동기화되어야 합니다.
즉, NavigatorSystem
에는 두 개의 엔티티가 필요합니다.
- 원시 엔티티는 엔티티의 로직과
Navigator
컴포넌트를 포함한 모든 컴포넌트를 가지고 있습니다. - 내비게이션 엔티티는
Navigator
컴포넌트에 의해서 생성되며, 관련된 컴포넌트의 내비게이션을 갖고 있으며MovementSystem
이 원시 엔티티의 이동에 필요한 입력을 발생시킵니다.
Navigator
컴포넌트는 NavMesh가 움직임의 보조 역할을 하는 시나리오에서 주로 사용됩니다. 예를 들어, AI는 NavMesh 경로 찾기를 기반으로 입력을 생성하지만, 실제 이동은 MovementSystem
에 의해 처리됩니다.
다음 다이어그램은 원시 엔티티(거미) 및 내비게이션 엔티티에 대한 컴포넌트 설정을 보여줍니다.
Navigator
컴포넌트를 사용할 때 몇 가지 유의할 점이 있습니다.
Navigator
컴포넌트만 원시 엔티티에 추가합니다.NavMeshPathfinder
,NavMeshSteeringAgent
및NavMeshAvoidanceAgent
컴포넌트를 직접 사용하지 마십시오.- NavMesh 관련 컴포넌트 및
Transform3D
에 접근하려면Navigator
컴포넌트에 선언된 메소드를 사용하십시오.GetNavMeshPathfinder()
GetNavMeshSteeringAgent()
GetNavMeshAvoidanceAgent()
GetTransform3D()
- 원시 엔티티 위치와 내비게이션 엔티티
Transform3D
의 동기화는 프레임 시작 시 자동 또는 수동으로 할 수 있습니다. - 내비게이션 엔티티의 위치와 원시 엔티티
Transform3D
로의 동기화는 자동으로 수행되지 않습니다.
Navigator
컴포넌트는 다음과 같은 속성들이 포함되어 있습니다:
NavMeshAgentConfig
:NavMeshPathfinder
컴포넌트를 초기화하는 데 사용되는NavMeshAgentConfig
에셋을 참조ManualTransformSynchronization
: 자동 또는 수동으로Transform3D
동기화를 사용할지 나타냅니다MaxDistance
:SnapBackDistance
로 스냅 되기 전에 내비게이션 엔티티와 원시 엔티티 사이의 최대 거리를 나타냅니다.SnapBackDistance
: 내비게이션 엔티티를 뒤로 스냅 할 수 있는 거리
올바른 내비게이션 동작을 위해서는 내비게이션 컴포넌트를 원래 위치로 스냅 해야 합니다. 내비게이션 엔티티가 NavMesh의 경로를 따르지만 어떤 이유로 인해 원시 엔티티가 해당 위치에 고착된 상태로 유지되는 경우가 있을 수 있습니다.
Back to top