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