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, |