Navigation
API > API/Runtime > API/Runtime/NavigationSystem > API/Runtime/NavigationSystem/NavMesh
Inheritance Hierarchy
- AActor
- INavigationDataInterface
- ANavigationData
- ARecastNavMesh
References
| Module | NavigationSystem |
| Header | /Engine/Source/Runtime/NavigationSystem/Public/NavMesh/RecastNavMesh.h |
| Include | #include "NavMesh/RecastNavMesh.h" |
Syntax
UCLASS (Config=Engine, defaultconfig,
HideCategories=(Input, Rendering, Tags, Transformation, Actor, Layers, Replication),
NotPlaceable, MinimalAPI)
class ARecastNavMesh : public ANavigationData
Variables
| Type | Name | Description | |
|---|---|---|---|
| float | AgentHeight | Size of the tallest agent that will path with this navmesh. | |
| float | AgentMaxSlope | The maximum slope (angle) that the agent can move on. | |
| float | AgentRadius | Radius of smallest agent to traverse this navmesh | |
| uint32: 1 | bAllowNavLinkAsPathEnd | If set, paths can end at navlink poly (not the ground one!) | |
| uint32: 1 | bAllowWorldPartitionedNavMesh | World partitioned navmesh are only allowed in partitioned worlds. | |
| uint32: 1 | bDistinctlyDrawTilesBeingBuilt | If true, show currently rebuilding tiles differently when visualizing | |
| uint32: 1 | bDoFullyAsyncNavDataGathering | If set, navmesh data gathering will never happen on the game thread and will only be done on background threads | |
| uint32: 1 | bDrawClusters | Draw navmesh's clusters and cluster links. (Requires WITH_NAVMESH_CLUSTER_LINKS=1) | |
| uint32: 1 | bDrawDefaultPolygonCost | Draw a label for every poly that indicates its default and fixed costs | |
| uint32: 1 | bDrawFailedNavLinks | Draw failed links and valid links. | |
| uint32: 1 | bDrawFilledPolys | If disabled skips filling drawn navmesh polygons | |
| uint32: 1 | bDrawLabelsOnPathNodes | ||
| uint32: 1 | bDrawMarkedForbiddenPolys | ||
| uint32: 1 | bDrawNavLinks | Draw valid links (both ends are valid). | |
| uint32: 1 | bDrawNavMeshEdges | Draw border-edges | |
| uint32: 1 | bDrawOctree | Draw octree used to store navigation relevant actors | |
| uint32: 1 | bDrawOctreeDetails | Draw octree used to store navigation relevant actors with the elements bounds | |
| uint32: 1 | bDrawPathCollidingGeometry | Draw input geometry passed to the navmesh generator. | |
| uint32: 1 | bDrawPolyEdges | Draw edges of every poly (i.e. not only border-edges) | |
| uint32: 1 | bDrawPolygonFlags | Draw a label for every poly that indicates its poly and area flags | |
| uint32: 1 | bDrawPolygonLabels | Draw a label for every poly that indicates its poly and tile indices | |
| uint32: 1 | bDrawTileBounds | Draw the tile boundaries | |
| uint32: 1 | bDrawTileBuildTimes | ||
| uint32: 1 | bDrawTileBuildTimesHeatMap | ||
| uint32: 1 | bDrawTileLabels | ||
| uint32: 1 | bDrawTileResolutions | Draw the tile resolutions | |
| uint32: 1 | bDrawTriangleEdges | Draw edges of every navmesh's triangle | |
| uint32: 1 | bFilterLowSpanFromTileCache | If set, only low height spans with corresponding area modifier will be stored in tile cache (reduces memory, can't modify without full tile rebuild) | |
| uint32: 1 | bFilterLowSpanSequences | If set, only single low height span will be allowed under valid one | |
| uint32: 1 | bFixedTilePoolSize | NavMesh generation parameters. | |
| uint32: 1 | bGenerateNavLinks | Experimental: if set, navlinks will be automatically generated. | |
| uint32: 1 | bIsWorldPartitioned | In a world partitioned map, is this navmesh using world partitioning | |
| uint32: 1 | bMarkLowHeightAreas | Mark areas with insufficient free height above instead of cutting them out (accessible only for area modifiers using replace mode) | |
| uint32: 1 | bPerformVoxelFiltering | Controls whether voxel filtering will be applied (via FRecastTileGenerator::ApplyVoxelFilter). | |
| uint32: 1 | bSortNavigationAreasByCost | Controls whether Navigation Areas will be sorted by cost before application to navmesh during navmesh generation. | |
| uint32: 1 | bStoreEmptyTileLayers | If set, tiles generated without any navmesh data will be marked to distinguish them from not generated / streamed out ones. | |
| uint32: 1 | bUseBetterOffsetsFromCorners | TODO: switch to disable new code from OffsetFromCorners if necessary - remove it later | |
| uint32: 1 | bUseExtraTopCellWhenMarkingAreas | Expand the top of the area nav modifier's bounds by one cell height when applying to the navmesh. | |
| uint32: 1 | bUseVirtualFilters | Indicates whether default navigation filters will use virtual functions. Defaults to true. | |
| uint32: 1 | bUseVirtualGeometryFilteringAndDirtying | Indicates whether to use the virtual methods to check if an object should generate geometry or if we should call the normal method directly (i.e. FNavigationOctreeElement::ShouldUseGeometry). | |
| float | DefaultDrawDistance | Navmesh draw distance in game (always visible in editor) | |
| float | DefaultMaxHierarchicalSearchNodes | Specifies default limit to A* nodes used when performing hierarchical navigation queries. | |
| float | DefaultMaxSearchNodes | Specifies default limit to A* nodes used when performing navigation queries. | |
| float | DrawOffset | Vertical offset added to navmesh's debug representation for better readability | |
| float | HeuristicScale | Recast runtime params. | |
| uint32 | InvokerTilePriorityBumpDistanceThresholdInTileUnits | If >= 1, when sorting pending tiles by priority, tiles near invokers (within the distance threshold) will have their priority increased. | |
| uint8 | InvokerTilePriorityBumpIncrease | Priority increase steps for tiles that are withing near distance. | |
| int32 | LayerChunkSplits | Number of chunk splits (along single axis) used for layer's partitioning: ChunkyMonotone | |
| TEnumAsByte< ERecastPartitioning::Type > | LayerPartitioning | Partitioning method for creating tile layers | |
| ENavigationLedgeSlopeFilterMode | LedgeSlopeFilterMode | Filtering methode used for filtering ledge slopes | |
| float | MaxSimplificationError | How much navigable shapes can get simplified - the higher the value the more freedom | |
| int32 | MaxSimultaneousTileGenerationJobsCount | Sets the limit for number of asynchronous tile generators running at one time, also used for some synchronous tasks | |
| int | MaxVerticalMergeError | Maximum vertical deviation between raw contour points to allowing merging (in voxel). | |
| float | MergeRegionSize | The size limit of regions to be merged with bigger regions (watershed partitioning only) | |
| float | MinRegionArea | The minimum dimension of area. Areas smaller than this will be discarded | |
| FNavLinkGenerationJumpDownConfig | NavLinkJumpDownConfig | Experimental configuration to generate vertical links. | |
| FVector | NavMeshOriginOffset | Use this if you don't want your tiles to start at (0,0,0) | |
| FNavMeshResolutionParam[(uint8) ENavigationDataResolution::MAX] | NavMeshResolutionParams | Resolution params If using multiple resolutions, it's recommended to chose the highest resolution first and set it according to the highest desired precision and then the other resolutions. | |
| FOnNavMeshUpdate | OnNavMeshUpdate | Broadcast for navmesh updates | |
| int32 | PolyRefNavPolyBits | ||
| int32 | PolyRefSaltBits | ||
| int32 | PolyRefTileBits | ||
| int32 | RegionChunkSplits | Number of chunk splits (along single axis) used for region's partitioning: ChunkyMonotone | |
| TEnumAsByte< ERecastPartitioning::Type > | RegionPartitioning | Partitioning method for creating navmesh polys | |
| float | SimplificationElevationRatio | When simplifying contours, how much is the vertical error taken into account when comparing with MaxSimplificationError. | |
| FRecastNavMeshTileGenerationDebug | TileGenerationDebug | ||
| int32 | TileNumberHardLimit | Absolute hard limit to number of navmesh tiles. | |
| int32 | TilePoolSize | Maximum number of tiles NavMesh can hold | |
| float | TileSizeUU | Size of single tile, expressed in uu | |
| int32 | TimeSliceFilterLedgeSpansMaxYProcess | The maximum number of y coords to process when time slicing filter ledge spans during navmesh regeneration. | |
| double | TimeSliceLongDurationDebug | If a single time sliced section of navmesh regen code exceeds this duration then it will trigger debug logging | |
| float | VerticalDeviationFromGroundCompensation | Value added to each search height to compensate for error between navmesh polys and walkable geometry |
Constructors
| Type | Name | Description | |
|---|---|---|---|
ARecastNavMesh
(
const FObjectInitializer& ObjectInitializer |
Destructors
| Type | Name | Description | |
|---|---|---|---|
| Dtor |
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | CanEditChange
(
const FProperty* InProperty |
||
| FVector::FReal | |||
| float | |||
| bool | |||
| bool | IsNodeRefValid
(
NavNodeRef NodeRef |
||
| bool | K2_ReplaceAreaInTileBounds
(
FBox Bounds, |
Blueprint functions. | |
| void | Serialize
(
FArchive& Ar |
||
| void | SetDrawDistance
(
FVector::FReal NewDistance |
||
| void | SetMinimumSizeForChaosNavMeshInfluence
(
float NewSize |
Overridden from ANavigationData
| Type | Name | Description | |
|---|---|---|---|
| void | BatchProjectPoints
(
TArray< FNavigationProjectionWork >& Workload, |
Batches ProjectPoint's work for efficiency | |
| void | BatchProjectPoints
(
TArray< FNavigationProjectionWork >& Workload, |
Project batch of points using shared search filter. | |
| void | BatchRaycast
(
TArray< FNavigationRaycastWork >& Workload, |
Raycasts batched for efficiency | |
| ENavigationQueryResult::Type | CalcPathCost
(
const FVector& PathStart, |
Calculates path from PathStart to PathEnd and retrieves its cost. | |
| ENavigationQueryResult::Type | CalcPathLength
(
const FVector& PathStart, |
Calculates path from PathStart to PathEnd and retrieves its length. | |
| ENavigationQueryResult::Type | CalcPathLengthAndCost
(
const FVector& PathStart, |
Calculates path from PathStart to PathEnd and retrieves its length. | |
| bool | DoesNodeContainLocation
(
NavNodeRef NodeRef, |
Checks if specified navigation node contains given location | |
| bool | FindMoveAlongSurface
(
const FNavLocation& StartLocation, |
Tries to move current nav location towards target constrained to navigable area. | |
| bool | FindOverlappingEdges
(
const FNavLocation& StartLocation, |
Returns the navmesh edges that touch the convex polygon. The edges are not clipped by the polygon. | |
| FBox | GetBounds () |
Returns bounding box for the navmesh. | |
| bool | GetPathSegmentBoundaryEdges
(
const FNavigationPath& Path, |
Searches navmesh edges between the two path points, search up to the convex polygon described in SearchArea. | |
| FNavLocation | GetRandomPoint
(
FSharedConstNavQueryFilter Filter, |
||
| bool | GetRandomPointInNavigableRadius
(
const FVector& Origin, |
Finds a random location in navigable space, in given Radius | |
| bool | GetRandomReachablePointInRadius
(
const FVector& Origin, |
Finds a random location in Radius, reachable from Origin | |
| bool | ProjectPoint
(
const FVector& Point, |
Tries to project given Point to this navigation type, within given Extent. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FRaycastResult |
Typedefs
| Name | Description |
|---|---|
| FNavPolyFlags |
Constants
| Name | Description |
|---|---|
| DrawDistanceSq | Squared draw distance |
| MinimumSizeForChaosNavMeshInfluenceSq | MinimumSizeForChaosNavMeshInfluence |
| NavLinkFlag | Contains last available dtPoly's flag bit set (8th bit at the moment of writing) |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
UE_DEPRECATED
(
all, |
|||
UE_DEPRECATED
(
all, |
Note that we are not using _DEPRECATED on the following deprecated properties since it prevents the property from being serialized back which can break the process of duplicating the navmesh for PIE | ||
UE_DEPRECATED
(
all, |