This document is about: QUANTUM 2
SWITCH TO

네비게이터

NavigatorSystem은 3D NavMesh에서 엔티티를 탐색하는 메커니즘을 제공합니다. Navigator 컴포넌트는 일반적으로 내비게이션 컴포넌트에서 발견되는 이동 동작을 캡슐화합니다. Navigator는 별도의 내비게이션 엔티티로 위로 이동하고 Transform3D를 사용하고 Transform3D 컴포넌트를 사용하여 위치와 움직임을 계산합니다. 원시 엔티티의 Transform3D는 내비게이션의 Transform3D 와 동기화되어야 합니다.

즉, NavigatorSystem에는 두 개의 엔티티가 필요합니다.

  • 원시 엔티티는 엔티티의 로직과 Navigator 컴포넌트를 포함한 모든 컴포넌트를 가지고 있습니다.
  • 내비게이션 엔티티는 Navigator 컴포넌트에 의해서 생성되며, 관련된 컴포넌트의 내비게이션을 갖고 있으며 MovementSystem이 원시 엔티티의 이동에 필요한 입력을 발생시킵니다.

Navigator 컴포넌트는 NavMesh가 움직임의 보조 역할을 하는 시나리오에서 주로 사용됩니다. 예를 들어, AI는 NavMesh 경로 찾기를 기반으로 입력을 생성하지만, 실제 이동은 MovementSystem에 의해 처리됩니다.

다음 다이어그램은 원시 엔티티(거미) 및 내비게이션 엔티티에 대한 컴포넌트 설정을 보여줍니다.

fps template navigator
FPS 템플릿 네비게이터

Navigator 컴포넌트를 사용할 때 몇 가지 유의할 점이 있습니다.

  • Navigator 컴포넌트만 원시 엔티티에 추가합니다.
  • NavMeshPathfinder, NavMeshSteeringAgentNavMeshAvoidanceAgent 컴포넌트를 직접 사용하지 마십시오.
  • NavMesh 관련 컴포넌트 및 Transform3D에 접근하려면 Navigator컴포넌트에 선언된 메소드를 사용하십시오.
    • GetNavMeshPathfinder()
    • GetNavMeshSteeringAgent()
    • GetNavMeshAvoidanceAgent()
    • GetTransform3D()
  • 원시 엔티티 위치와 내비게이션 엔티티 Transform3D의 동기화는 프레임 시작 시 자동 또는 수동으로 할 수 있습니다.
  • 내비게이션 엔티티의 위치와 원시 엔티티 Transform3D로의 동기화는 자동으로 수행되지 않습니다.

Navigator 컴포넌트는 다음과 같은 속성들이 포함되어 있습니다:

  • NavMeshAgentConfig: NavMeshPathfinder 컴포넌트를 초기화하는 데 사용되는 NavMeshAgentConfig 에셋을 참조
  • ManualTransformSynchronization: 자동 또는 수동으로 Transform3D동기화를 사용할지 나타냅니다
  • MaxDistance: SnapBackDistance로 스냅 되기 전에 내비게이션 엔티티와 원시 엔티티 사이의 최대 거리를 나타냅니다.
  • SnapBackDistance: 내비게이션 엔티티를 뒤로 스냅 할 수 있는 거리

올바른 내비게이션 동작을 위해서는 내비게이션 컴포넌트를 원래 위치로 스냅 해야 합니다. 내비게이션 엔티티가 NavMesh의 경로를 따르지만 어떤 이유로 인해 원시 엔티티가 해당 위치에 고착된 상태로 유지되는 경우가 있을 수 있습니다.

Back to top