ARecastNavMesh

LWC_TODO_AI: Many of the virtual methods and members should be changed from float to [FVector::FReal](API\Runtime\Core\TVector\FReal). Not for 5.0!

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

NavigationSystem

Header

/Engine/Source/Runtime/NavigationSystem/Public/NavMesh/RecastNavMesh.h

Include

#include "NavMesh/RecastNavMesh.h"

Syntax

class ARecastNavMesh : public ANavigationData

Remarks

LWC_TODO_AI: Many of the virtual methods and members should be changed from float to FVector::FReal. Not for 5.0!

Variables

Name Description

Public variable

float

 

AgentHeight

Size of the tallest agent that will path with this navmesh.

Public variable

float

 

AgentMaxSlope

The maximum slope (angle) that the agent can move on.

Public variable

float

 

AgentMaxStepHeight

Largest vertical step the agent can perform

Public variable

float

 

AgentRadius

Radius of smallest agent to traverse this navmesh

Public variable

uint32: 1

 

bAllowNavLinkAsPathEnd

If set, paths can end at navlink poly (not the ground one!)

Public variable

uint32: 1

 

bDistinctlyDrawTilesBeingBuilt

If true, show currently rebuilding tiles differently when visualizing

Public variable

uint32: 1

 

bDoFullyAsyncNavDataGathering

If set, navmesh data gathering will never happen on the game thread and will only be done on background threads

Public variable

uint32: 1

 

bDrawClusters

Draw navmesh's clusters and cluster links. (Requires WITH_NAVMESH_CLUSTER_LINKS=1)

Public variable

uint32: 1

 

bDrawDefaultPolygonCost

Draw a label for every poly that indicates its default and fixed costs

Public variable

uint32: 1

 

bDrawFailedNavLinks

Public variable

uint32: 1

 

bDrawFilledPolys

If disabled skips filling drawn navmesh polygons

Public variable

uint32: 1

 

bDrawLabelsOnPathNodes

Public variable

uint32: 1

 

bDrawMarkedForbiddenPolys

Public variable

uint32: 1

 

bDrawNavLinks

Public variable

uint32: 1

 

bDrawNavMeshEdges

Draw border-edges

Public variable

uint32: 1

 

bDrawOctree

Draw edges of every navmesh's triangle

Public variable

uint32: 1

 

bDrawOctreeDetails

Public variable

uint32: 1

 

bDrawPathCollidingGeometry

Draw input geometry passed to the navmesh generator.

Public variable

uint32: 1

 

bDrawPolyEdges

Draw edges of every poly (i.e. not only border-edges)

Public variable

uint32: 1

 

bDrawPolygonFlags

Draw a label for every poly that indicates its poly and area flags

Public variable

uint32: 1

 

bDrawPolygonLabels

Draw a label for every poly that indicates its poly and tile indices

Public variable

uint32: 1

 

bDrawTileBounds

Draw the tile boundaries

Public variable

uint32: 1

 

bDrawTileLabels

Public variable

uint32: 1

 

bDrawTriangleEdges

Draw edges of every navmesh's triangle

Public variable

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)

Public variable

uint32: 1

 

bFilterLowSpanSequences

If set, only single low height span will be allowed under valid one

Public variable

uint32: 1

 

bFixedTilePoolSize

NavMesh generation parameters.

Public variable

uint32: 1

 

bMarkLowHeightAreas

Mark areas with insufficient free height above instead of cutting them out (accessible only for area modifiers using replace mode)

Public variable

uint32: 1

 

bPerformVoxelFiltering

Controls whether voxel filtering will be applied (via FRecastTileGenerator::ApplyVoxelFilter).

Public variable

uint32: 1

 

bSortNavigationAreasByCost

Controls whether Navigation Areas will be sorted by cost before application to navmesh during navmesh generation.

Public variable

uint32: 1

 

bStoreEmptyTileLayers

If set, tiles generated without any navmesh data will be marked to distinguish them from not generated / streamed out ones.

Public variable

uint32: 1

 

bUseBetterOffsetsFromCorners

TODO: switch to disable new code from OffsetFromCorners if necessary - remove it later

Public variable

uint32: 1

 

bUseExtraTopCellWhenMarkingAreas

Expand the top of the area nav modifier's bounds by one cell height when applying to the navmesh.

Public variable

uint32: 1

 

bUseVirtualFilters

Indicates whether default navigation filters will use virtual functions. Defaults to true.

Public variable

uint32: 1

 

bUseVirtualGeometryFilteringAndDirtying

Indicates whether 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).

Public variable

float

 

CellHeight

Vertical size of voxelization cell

Public variable

float

 

CellSize

Horizontal size of voxelization cell

Public variable

float

 

DefaultDrawDistance

Navmesh draw distance in game (always visible in editor)

Public variable

float

 

DefaultMaxHierarchicalSearchNodes

Specifes default limit to A* nodes used when performing hierarchical navigation queries.

Public variable

float

 

DefaultMaxSearchNodes

Specifes default limit to A* nodes used when performing navigation queries.

Public variable

float

 

DrawOffset

Vertical offset added to navmesh's debug representation for better readability

Public variable

float

 

HeuristicScale

Recast runtime params.

Public variable

int32

 

LayerChunkSplits

Number of chunk splits (along single axis) used for layer's partitioning: ChunkyMonotone

Public variable

TEnumAsByte< ER...

 

LayerPartitioning

Partitioning method for creating tile layers

Public variable

float

 

MaxSimplificationError

How much navigable shapes can get simplified - the higher the value the more freedom

Public variable

int32

 

MaxSimultaneousTileGenerationJobsCount

Sets the limit for number of asynchronous tile generators running at one time, also used for some synchronous tasks

Public variable

float

 

MergeRegionSize

The size limit of regions to be merged with bigger regions (watershed partitioning only)

Public variable

float

 

MinRegionArea

The minimum dimension of area. Areas smaller than this will be discarded

Public variable

FVector

 

NavMeshOriginOffset

Use this if you don't want your tiles to start at (0,0,0)

Public variable

FOnNavMeshUpdat...

 

OnNavMeshUpdate

Broadcast for navmesh updates

Public variable

int32

 

PolyRefNavPolyBits

Public variable

int32

 

PolyRefSaltBits

Public variable

int32

 

PolyRefTileBits

Public variable

int32

 

RegionChunkSplits

Number of chunk splits (along single axis) used for region's partitioning: ChunkyMonotone

Public variable

TEnumAsByte< ER...

 

RegionPartitioning

Partitioning method for creating navmesh polys

Public variable

FRecastNavMeshT...

 

TileGenerationDebug

Public variable

int32

 

TileNumberHardLimit

Absolute hard limit to number of navmesh tiles.

Public variable

int32

 

TilePoolSize

Maximum number of tiles NavMesh can hold

Public variable

float

 

TileSizeUU

Size of single tile, expressed in uu

Public variable

float

 

VerticalDeviationFromGroundCompensation

Value added to each search height to compensate for error between navmesh polys and walkable geometry

Constructors

Name Description

Public function

ARecastNavMesh

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function Static

float

 

GetDrawDistanceSq()

Public function Static

float

 

GetMinimumSizeForChaosNavMeshInfluenceSq()

Public function Const

bool

 

HasValidNavmesh()

Public function

bool

 

K2_ReplaceAreaInTileBounds

(
    FBox Bounds,
    TSubclassOf< UNavArea > OldArea,
    TSubclassOf< UNavArea > NewArea,
    bool ReplaceLinks
)

Blueprint functions.

Public function Static

void

 

SetDrawDistance

(
    float NewDistance
)

Public function Static

void

 

SetMinimumSizeForChaosNavMeshInfluence

(
    float NewSize
)

Overridden from UObject

Name Description

Public function Virtual Const

bool

 

CanEditChange

(
    const FProperty* InProperty
)

Called by the editor to query whether a property of this object is allowed to be modified.

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Classes

Name

Description

Public struct

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)