NavGraph 만들기

사용자 정의 NavGraph를 추가하여 사용자가 만든 NavMesh를 지형에 맞게 늘릴 수 있습니다. 이러한 NavGraph의 배치는 게임 레벨을 설계할 때 필요한 경우가 많습니다. 이 경우 NavData 생성 프로세스(일반적으로 레벨에 대한 NavMesh를 생성한 후에 수행하는 사후 처리 단계) 중에 NavGraph를 만들 수 있습니다. 그러나 런타임 시 동적으로 NavGraph를 만들고 생성할 수도 있습니다. 예를 들어 게임의 NPC가 임의의 장소로 이동할 수 있는 사다리를 사용할 수 있도록 하려는 경우 이 접근 방법을 사용해야 할 수 있습니다.

NavGraph 작성

NavGraphBlobBuilder 오브젝트를 사용하여 다음과 같이 NavGraph를 작성할 수 있습니다.

  1. NavGraphBlobBuilder 클래스의 새 인스턴스를 만들고 해당 메서드를 사용하여 정점 및 가장자리를 추가합니다.
  2. NavGraph를 유지할 새 NavData 오브젝트를 만듭니다.
  3. NavData::AddNavGraph() 메서드를 호출하고 NavGraphBlobBuilder를 매개변수로 전달하여 NavData에 새 NavGraph를 추가합니다.

여러 NavGraph를 같은 NavData 오브젝트에 추가할 수 있습니다. 그러나 NavMesh가 이미 포함되어 있는 NavData 오브젝트 또는 데이터베이스에 이미 추가된 NavData 오브젝트에는 NavGraph를 추가할 수 없습니다.

데이터 생성 중에 만들기

데이터 생성 프로세스의 일부로 NavGraph를 만들려는 경우 데이터 생성 시스템에서 자동으로 만든 NavData 오브젝트에 대한 작업과 동일한 방식으로 새 NavData 오브젝트를 패키징해야 합니다.

런타임 시 만들기

런타임 시 동적으로 NavGraph를 만들려면 사전 생성된 데이터가 포함된 NavData 오브젝트에 대한 작업과 동일한 방식으로 NavData 오브젝트를 데이터베이스에 추가하기만 하면 됩니다.

NavData::AddToDatabaseImmediate() 또는 NavData::AddToDatabaseAsync()를 호출합니다.

예제

데이터 생성 프로세스의 사후 처리 단계 중에 NavGraph를 만드는 방법을 보여 주는 코드 예제는 Tutorial_Generation_postProcess.cpp 파일을 참조하십시오.

NavGraph를 즉시 만들고 추가하는 방법을 보여 주는 코드 예제는 Tutorial_NavTag.cpp 파일을 참조하십시오.