UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavigationSystem.cpp File Reference
#include "NavigationSystem.h"
#include "AbstractNavData.h"
#include "AI/NavDataGenerator.h"
#include "AI/Navigation/NavAgentInterface.h"
#include "AI/Navigation/NavigationDataChunk.h"
#include "AI/Navigation/NavigationDirtyArea.h"
#include "AI/Navigation/NavigationDirtyElement.h"
#include "AI/Navigation/NavigationInvokerInterface.h"
#include "AI/Navigation/NavigationInvokerPriority.h"
#include "AI/Navigation/NavigationElement.h"
#include "AI/Navigation/NavRelevantInterface.h"
#include "AI/NavigationModifier.h"
#include "Components/PrimitiveComponent.h"
#include "CrowdManagerBase.h"
#include "Engine/Engine.h"
#include "Engine/LocalPlayer.h"
#include "Engine/World.h"
#include "EngineUtils.h"
#include "GameFramework/Controller.h"
#include "GameFramework/Pawn.h"
#include "Logging/MessageLog.h"
#include "Misc/ScopeLock.h"
#include "Modules/ModuleManager.h"
#include "NavAreas/NavArea.h"
#include "NavAreas/NavArea_Default.h"
#include "NavAreas/NavArea_Obstacle.h"
#include "NavAreas/NavAreaMeta_SwitchByAgent.h"
#include "NavFilters/NavigationQueryFilter.h"
#include "NavigationDataHandler.h"
#include "NavigationInvokerComponent.h"
#include "NavigationObjectRepository.h"
#include "NavigationOctree.h"
#include "NavigationPath.h"
#include "NavLinkCustomInterface.h"
#include "NavMesh/NavMeshBoundsVolume.h"
#include "ProfilingDebugging/CsvProfiler.h"
#include "Stats/StatsMisc.h"
#include "UObject/Package.h"
#include "UObject/UObjectIterator.h"
#include "UObject/UObjectThreadContext.h"
#include "VisualLogger/VisualLogger.h"

Namespaces

namespace  UE
 
namespace  UE::Navigation
 
namespace  UE::Navigation::Private
 
namespace  FNavigationSystem
 
namespace  NavigationDebugDrawing
 

Macros

#define LOCTEXT_NAMESPACE   "Navigation"
 

Functions

 DECLARE_CYCLE_STAT (TEXT("Nav Tick: mark dirty"), STAT_Navigation_TickMarkDirty, STATGROUP_Navigation)
 
 DECLARE_CYCLE_STAT (TEXT("Nav Tick: async build"), STAT_Navigation_TickAsyncBuild, STATGROUP_Navigation)
 
 DECLARE_CYCLE_STAT (TEXT("Nav Tick: dispatch async pathfinding results"), STAT_Navigation_DispatchAsyncPathfindingResults, STATGROUP_Navigation)
 
 DECLARE_CYCLE_STAT (TEXT("Nav Tick: async pathfinding"), STAT_Navigation_TickAsyncPathfinding, STATGROUP_Navigation)
 
 DECLARE_CYCLE_STAT_WITH_FLAGS (TEXT("NavOctree bookkeeping"), STAT_NavOctreeBookkeeping, STATGROUP_Navigation, EStatFlags::Verbose)
 
 DEFINE_STAT (STAT_Navigation_QueriesTimeSync)
 
 DEFINE_STAT (STAT_Navigation_RequestingAsyncPathfinding)
 
 DEFINE_STAT (STAT_Navigation_PathfindingSync)
 
 DEFINE_STAT (STAT_Navigation_PathfindingAsync)
 
 DEFINE_STAT (STAT_Navigation_TileNavAreaSorting)
 
 DEFINE_STAT (STAT_Navigation_TileGeometryExportToObjAsync)
 
 DEFINE_STAT (STAT_Navigation_TileVoxelFilteringAsync)
 
 DEFINE_STAT (STAT_Navigation_TileBuildAsync)
 
 DEFINE_STAT (STAT_Navigation_TileBuildPreparationSync)
 
 DEFINE_STAT (STAT_Navigation_BSPExportSync)
 
 DEFINE_STAT (STAT_Navigation_GatheringNavigationModifiersSync)
 
 DEFINE_STAT (STAT_Navigation_ActorsGeometryExportSync)
 
 DEFINE_STAT (STAT_Navigation_ProcessingActorsForNavMeshBuilding)
 
 DEFINE_STAT (STAT_Navigation_AdjustingNavLinks)
 
 DEFINE_STAT (STAT_Navigation_RegisterNavOctreeElement)
 
 DEFINE_STAT (STAT_Navigation_UnregisterNavOctreeElement)
 
 DEFINE_STAT (STAT_Navigation_AddingActorsToNavOctree)
 
 DEFINE_STAT (STAT_Navigation_RecastAddGeneratedTiles)
 
 DEFINE_STAT (STAT_Navigation_RecastAddGeneratedTileLayer)
 
 DEFINE_STAT (STAT_Navigation_RecastTick)
 
 DEFINE_STAT (STAT_Navigation_RecastPathfinding)
 
 DEFINE_STAT (STAT_Navigation_RecastTestPath)
 
 DEFINE_STAT (STAT_Navigation_StoringCompressedLayers)
 
 DEFINE_STAT (STAT_Navigation_CreateTileGenerator)
 
 DEFINE_STAT (STAT_Navigation_DoWork)
 
 DEFINE_STAT (STAT_Navigation_RemoveLayers)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildCompressedLayers)
 
 DEFINE_STAT (STAT_Navigation_RecastCreateHeightField)
 
 DEFINE_STAT (STAT_Navigation_RecastComputeRasterizationMasks)
 
 DEFINE_STAT (STAT_Navigation_RecastRasterizeTriangles)
 
 DEFINE_STAT (STAT_Navigation_RecastVoxelFilter)
 
 DEFINE_STAT (STAT_Navigation_RecastFilter)
 
 DEFINE_STAT (STAT_Navigation_FilterLedgeSpans)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildCompactHeightField)
 
 DEFINE_STAT (STAT_Navigation_RecastErodeWalkable)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildLayers)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildTileCache)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildPolyMesh)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildPolyDetail)
 
 DEFINE_STAT (STAT_Navigation_RecastGatherOffMeshData)
 
 DEFINE_STAT (STAT_Navigation_RecastCreateNavMeshData)
 
 DEFINE_STAT (STAT_Navigation_RecastMarkAreas)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildContours)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildNavigation)
 
 DEFINE_STAT (STAT_Navigation_GenerateNavigationDataLayer)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildLinks)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildLinks_FindEdges)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildLinks_Sample)
 
 DEFINE_STAT (STAT_Navigation_RecastBuildRegions)
 
 DEFINE_STAT (STAT_Navigation_UpdateNavOctree)
 
 DEFINE_STAT (STAT_Navigation_CollisionTreeMemory)
 
 DEFINE_STAT (STAT_Navigation_NavDataMemory)
 
 DEFINE_STAT (STAT_Navigation_TileCacheMemory)
 
 DEFINE_STAT (STAT_Navigation_OutOfNodesPath)
 
 DEFINE_STAT (STAT_Navigation_PartialPath)
 
 DEFINE_STAT (STAT_Navigation_CumulativeBuildTime)
 
 DEFINE_STAT (STAT_Navigation_BuildTime)
 
 DEFINE_STAT (STAT_Navigation_OffsetFromCorners)
 
 DEFINE_STAT (STAT_Navigation_PathVisibilityOptimisation)
 
 DEFINE_STAT (STAT_Navigation_ObservedPathsCount)
 
 DEFINE_STAT (STAT_Navigation_RecastMemory)
 
 DEFINE_STAT (STAT_Navigation_DetourTEMP)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_AVOIDANCE)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_CROWD)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_LOOKUP)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_NAVQUERY)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_NAVMESH)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_NODE_POOL)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_PATH_CORRIDOR)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_PATH_QUEUE)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_PROXY_GRID)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_TILE_DATA)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_TILE_DYNLINK_OFFMESH)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_TILE_DYNLINK_CLUSTER)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_TILES)
 
 DEFINE_STAT (STAT_Navigation_DetourPERM_TILE_LINK_BUILDER)
 
 DEFINE_STAT (STAT_DetourTileMemory)
 
 DEFINE_STAT (STAT_DetourTileMeshHeaderMemory)
 
 DEFINE_STAT (STAT_DetourTileNavVertsMemory)
 
 DEFINE_STAT (STAT_DetourTileNavPolysMemory)
 
 DEFINE_STAT (STAT_DetourTileLinksMemory)
 
 DEFINE_STAT (STAT_DetourTileDetailMeshesMemory)
 
 DEFINE_STAT (STAT_DetourTileDetailVertsMemory)
 
 DEFINE_STAT (STAT_DetourTileDetailTrisMemory)
 
 DEFINE_STAT (STAT_DetourTileBVTreeMemory)
 
 DEFINE_STAT (STAT_DetourTileOffMeshConsMemory)
 
 DEFINE_STAT (STAT_DetourTileOffMeshSegsMemory)
 
 DEFINE_STAT (STAT_DetourTileClustersMemory)
 
 DEFINE_STAT (STAT_DetourTilePolyClustersMemory)
 
 CSV_DEFINE_CATEGORY (NavigationSystem, false)
 
 CSV_DEFINE_CATEGORY (NavigationBuildDetailed, true)
 
 CSV_DEFINE_CATEGORY (NavTasksDelays, true)
 
 CSV_DEFINE_CATEGORY (NavTasks, true)
 
 CSV_DEFINE_CATEGORY (NavInvokers, true)
 
const FNavDataConfigUE::Navigation::Private::GetFallbackNavDataConfig ()
 
FORCEINLINE bool UE::Navigation::Private::IsValidExtent (const FVector &Extent)
 
bool UE::Navigation::Private::ShouldComponentWaitForActorToRegister (const UActorComponent *Comp)
 
bool FNavigationSystem::ShouldLoadNavigationOnClient (ANavigationData &NavData)
 
void FNavigationSystem::MakeAllComponentsNeverAffectNav (AActor &Actor)
 
const FVector NavigationDebugDrawing::PathNodeBoxExtent (16.f)
 
void UE::Navigation::Private::LogNavInvokerRegistration (const UNavigationSystemV1 &NavSystem, const FNavigationInvoker &Data)
 

Variables

const float NavigationDebugDrawing::PathLineThickness = 3.f
 
const FVector NavigationDebugDrawing::PathOffset (0, 0, 15)
 
FAutoConsoleTaskPriority CPrio_TriggerAsyncQueries (TEXT("TaskGraph.TaskPriorities.NavTriggerAsyncQueries"), TEXT("Task and thread priority for UNavigationSystemV1::PerformAsyncQueries."), ENamedThreads::BackgroundThreadPriority, ENamedThreads::NormalTaskPriority, ENamedThreads::NormalTaskPriority)
 

Macro Definition Documentation

◆ LOCTEXT_NAMESPACE

#define LOCTEXT_NAMESPACE   "Navigation"

Function Documentation

◆ CSV_DEFINE_CATEGORY() [1/5]

CSV_DEFINE_CATEGORY ( NavigationBuildDetailed  ,
true   
)

◆ CSV_DEFINE_CATEGORY() [2/5]

CSV_DEFINE_CATEGORY ( NavigationSystem  ,
false   
)

◆ CSV_DEFINE_CATEGORY() [3/5]

CSV_DEFINE_CATEGORY ( NavInvokers  ,
true   
)

◆ CSV_DEFINE_CATEGORY() [4/5]

CSV_DEFINE_CATEGORY ( NavTasks  ,
true   
)

◆ CSV_DEFINE_CATEGORY() [5/5]

CSV_DEFINE_CATEGORY ( NavTasksDelays  ,
true   
)

◆ DECLARE_CYCLE_STAT() [1/4]

DECLARE_CYCLE_STAT ( TEXT("Nav Tick: async build" ,
STAT_Navigation_TickAsyncBuild  ,
STATGROUP_Navigation   
)

◆ DECLARE_CYCLE_STAT() [2/4]

◆ DECLARE_CYCLE_STAT() [3/4]

◆ DECLARE_CYCLE_STAT() [4/4]

DECLARE_CYCLE_STAT ( TEXT("Nav Tick: mark dirty" ,
STAT_Navigation_TickMarkDirty  ,
STATGROUP_Navigation   
)

◆ DECLARE_CYCLE_STAT_WITH_FLAGS()

DECLARE_CYCLE_STAT_WITH_FLAGS ( TEXT("NavOctree bookkeeping" ,
STAT_NavOctreeBookkeeping  ,
STATGROUP_Navigation  ,
EStatFlags::Verbose   
)

◆ DEFINE_STAT() [1/90]

DEFINE_STAT ( STAT_DetourTileBVTreeMemory  )

◆ DEFINE_STAT() [2/90]

DEFINE_STAT ( STAT_DetourTileClustersMemory  )

◆ DEFINE_STAT() [3/90]

◆ DEFINE_STAT() [4/90]

◆ DEFINE_STAT() [5/90]

◆ DEFINE_STAT() [6/90]

DEFINE_STAT ( STAT_DetourTileLinksMemory  )

◆ DEFINE_STAT() [7/90]

DEFINE_STAT ( STAT_DetourTileMemory  )

◆ DEFINE_STAT() [8/90]

◆ DEFINE_STAT() [9/90]

DEFINE_STAT ( STAT_DetourTileNavPolysMemory  )

◆ DEFINE_STAT() [10/90]

DEFINE_STAT ( STAT_DetourTileNavVertsMemory  )

◆ DEFINE_STAT() [11/90]

◆ DEFINE_STAT() [12/90]

◆ DEFINE_STAT() [13/90]

◆ DEFINE_STAT() [14/90]

◆ DEFINE_STAT() [15/90]

◆ DEFINE_STAT() [16/90]

◆ DEFINE_STAT() [17/90]

DEFINE_STAT ( STAT_Navigation_BSPExportSync  )

◆ DEFINE_STAT() [18/90]

DEFINE_STAT ( STAT_Navigation_BuildTime  )

◆ DEFINE_STAT() [19/90]

◆ DEFINE_STAT() [20/90]

◆ DEFINE_STAT() [21/90]

◆ DEFINE_STAT() [22/90]

DEFINE_STAT ( STAT_Navigation_DetourPERM  )

◆ DEFINE_STAT() [23/90]

◆ DEFINE_STAT() [24/90]

◆ DEFINE_STAT() [25/90]

◆ DEFINE_STAT() [26/90]

◆ DEFINE_STAT() [27/90]

◆ DEFINE_STAT() [28/90]

◆ DEFINE_STAT() [29/90]

◆ DEFINE_STAT() [30/90]

◆ DEFINE_STAT() [31/90]

◆ DEFINE_STAT() [32/90]

◆ DEFINE_STAT() [33/90]

◆ DEFINE_STAT() [34/90]

◆ DEFINE_STAT() [35/90]

◆ DEFINE_STAT() [36/90]

◆ DEFINE_STAT() [37/90]

DEFINE_STAT ( STAT_Navigation_DetourTEMP  )

◆ DEFINE_STAT() [38/90]

DEFINE_STAT ( STAT_Navigation_DoWork  )

◆ DEFINE_STAT() [39/90]

◆ DEFINE_STAT() [40/90]

◆ DEFINE_STAT() [41/90]

◆ DEFINE_STAT() [42/90]

DEFINE_STAT ( STAT_Navigation_NavDataMemory  )

◆ DEFINE_STAT() [43/90]

◆ DEFINE_STAT() [44/90]

◆ DEFINE_STAT() [45/90]

DEFINE_STAT ( STAT_Navigation_OutOfNodesPath  )

◆ DEFINE_STAT() [46/90]

DEFINE_STAT ( STAT_Navigation_PartialPath  )

◆ DEFINE_STAT() [47/90]

◆ DEFINE_STAT() [48/90]

◆ DEFINE_STAT() [49/90]

◆ DEFINE_STAT() [50/90]

◆ DEFINE_STAT() [51/90]

◆ DEFINE_STAT() [52/90]

◆ DEFINE_STAT() [53/90]

◆ DEFINE_STAT() [54/90]

◆ DEFINE_STAT() [55/90]

◆ DEFINE_STAT() [56/90]

◆ DEFINE_STAT() [57/90]

◆ DEFINE_STAT() [58/90]

◆ DEFINE_STAT() [59/90]

◆ DEFINE_STAT() [60/90]

◆ DEFINE_STAT() [61/90]

◆ DEFINE_STAT() [62/90]

◆ DEFINE_STAT() [63/90]

◆ DEFINE_STAT() [64/90]

◆ DEFINE_STAT() [65/90]

◆ DEFINE_STAT() [66/90]

◆ DEFINE_STAT() [67/90]

◆ DEFINE_STAT() [68/90]

◆ DEFINE_STAT() [69/90]

◆ DEFINE_STAT() [70/90]

DEFINE_STAT ( STAT_Navigation_RecastFilter  )

◆ DEFINE_STAT() [71/90]

◆ DEFINE_STAT() [72/90]

◆ DEFINE_STAT() [73/90]

DEFINE_STAT ( STAT_Navigation_RecastMemory  )

◆ DEFINE_STAT() [74/90]

◆ DEFINE_STAT() [75/90]

◆ DEFINE_STAT() [76/90]

DEFINE_STAT ( STAT_Navigation_RecastTestPath  )

◆ DEFINE_STAT() [77/90]

DEFINE_STAT ( STAT_Navigation_RecastTick  )

◆ DEFINE_STAT() [78/90]

◆ DEFINE_STAT() [79/90]

◆ DEFINE_STAT() [80/90]

DEFINE_STAT ( STAT_Navigation_RemoveLayers  )

◆ DEFINE_STAT() [81/90]

◆ DEFINE_STAT() [82/90]

◆ DEFINE_STAT() [83/90]

DEFINE_STAT ( STAT_Navigation_TileBuildAsync  )

◆ DEFINE_STAT() [84/90]

◆ DEFINE_STAT() [85/90]

◆ DEFINE_STAT() [86/90]

◆ DEFINE_STAT() [87/90]

◆ DEFINE_STAT() [88/90]

◆ DEFINE_STAT() [89/90]

◆ DEFINE_STAT() [90/90]

Variable Documentation

◆ CPrio_TriggerAsyncQueries