AbstractGraph는 또 다른 유형의 NavData로, NavMesh에서 가능한 경로를 추상적으로 간단하게 정적인 표현으로 나타낸 것입니다.
AbstractGraph는 대형 월드로의 매우 긴 경로를 찾는 데 사용됩니다. 시작점과 끝점에서만 AbstractGraph 및 NavMesh를 사용하여 경로를 찾을 수 있습니다. NavMesh만 사용하는 것보다 AbstractGraph를 사용하면 경로를 더 빨리 찾을 수 있습니다. 또한 AbstractGraph를 사용하면 메모리와 CPU 시간을 절약할 수 있습니다.
다음 그림은 시작점과 끝점에서만 NavMesh와 함께 AbstractGraph를 사용하여 계산된 경로를 보여줍니다.

다음 그림은 상자 범위 때문에 NavMesh만 사용할 때 어떻게 경로 찾기가 실패하는지 보여줍니다. 상자 범위를 늘리면 작업 메모리가 부족하기 때문에 경로 찾기가 실패합니다.

지정된 셀 상자를 사용하는 NavData에 대해서만 AbstractGraph를 만들 수 있습니다. 셀 상자에 대한 자세한 내용은 고정 단계 또는 그리드 기반 분할 사용을 참조하십시오.
기본적으로 AbstractGraph는 만들어지지 않습니다. AbstractGraph를 만들려면 GeneratorAbstractGraphParameters 구성원인 m_abstractGraphParams에서 m_doGenerateAbstractGraph를 true로 설정해야 합니다.
NavData를 포함하기 위해 AbstractGraph 한 개 또는 여러 개를 사용할 수 있습니다. AbstractGraph가 포함하는 셀 상자의 길이를 정의하려면 GeneratorAbstractGraphParameters::m_extentsInNumberOfCells를 설정합니다. 이 특성을 사용하면 구체적인 경로의 잠재적 크기를 제한할 수 있습니다. 기본적으로 이 값은 0으로 설정되며 한 개의 AbstractGraph를 생성하여 전체 NavData를 포함합니다.
GeneratorAbstractGraphParameters::m_workingMemorySizeLimit 매개변수는 WorkingMemory에 대한 크기 제한(바이트)을 제공하고 AbstractGraph에서 가장자리 비용을 계산할 때 MultiDestinationPathFinderQuery를 실행하기 위해 사용됩니다.
AbstractGraph는 정적이며 런타임 시 동적 NavMesh, NavTag 및 NavGraph 변경을 고려하지 않습니다. AStarQuery가 AbstractGraph를 가로지르거나 가로지르지 않도록 설정하려면 SetAbstractGraphTraversalMode()를 호출하고 PATHFINDER_ TRAVERSE_ABSTRACTGRAPHS 또는 PATHFINDER_DO_NOT_TRAVERSE_ABSTRACTGRAPHS를 전달합니다. NavMesh에서 전파는 시작 위치와 끝 위치에서 AbstractGraph가 적용된 셀로 제한됩니다.
AbstractGraph를 사용하여 경로를 찾은 경우 AStarQuery::m_abstractPath 및 일반 AStarQuery::m_path로 설정됩니다. m_abstractPath에는 AbstractPath가 포함되어 있으며 m_path에는 첫 번째 구체적 경로(시작점에서 첫 번째 AbstractGraph 노드까지)가 포함되어 있습니다.
AbstractPath를 따라가려면 다음 AbstractPath 노드까지 AStarQuery를 실행하고 봇이 따라갈 수 있는 다음 구체적 경로를 찾습니다. LabEngine 샘플 라이브러리에 AbstractGraph를 따라가는 예가 있습니다. LabEngine::AbstractPathFollower 클래스는 다음을 사용하여 구체적 경로를 찾는 쿼리를 만듭니다.