G1R AngelScript
Scripting reference for the Gothic 1 Remake
Loading...
Searching...
No Matches
UNavigationSystemV1 Class Reference

Public Member Functions

AI|Navigation|Generation
void SetGeometryGatheringMode (ENavDataGatheringModeConfig NewMode)
Functions
void SetbInitialBuildingLocked (bool Value)
 if set to true will result navigation system not rebuild navigation until a call to ReleaseInitialBuildingLock() is called. Does not influence editor-time generation (i.e. does influence PIE and Game). Defaults to false.
void SetbAllowClientSideNavigation (bool Value)
 If false, will not create nav collision when connecting as a client.
void SetbSkipAgentHeightCheckWhenPickingNavData (bool Value)
 false by default, if set to true will result in not caring about nav agent height when trying to match navigation data to passed in nav agent
void SetbShouldDiscardSubLevelNavData (bool Value)
 If true, games should ignore navigation data inside loaded sublevels.
void SetbGenerateNavigationOnlyAroundNavigationInvokers (bool Value)
 If set to true navigation will be generated only around registered "navigation enforcers" This has a range of consequences (including how navigation octree operates) so it needs to be a conscious decision. Once enabled results in whole world being navigable. See: RegisterNavigationInvoker.
void SetbTickWhilePaused (bool Value)
 If true, will update navigation even when the game is paused.
void SetbAutoCreateNavigationData (bool Value)
 Should navigation system spawn default Navigation Data when there's none and there are navigation bounds present?
void SetbSpawnNavDataInNavBoundsLevel (bool Value)
 If true will try to spawn the navigation data instance in the sublevel with navigation bounds, if false it will spawn in the persistent level.
Public Member Functions inherited from UObject
bool MarkPackageDirty () const
void RemoveFromRoot ()
bool GetIsRooted () const
bool IsTransient () const
bool Modify (bool bAlwaysMarkDirty=true)
void SetTransactional (bool bTransactional)
bool IsSupportedForNetworking () const
UClass GetClass () const
UObject GetOuter () const
UObject GetTypedOuter (TSubclassOf< UObject > Target) const
 Traverses the outer chain searching for the next object of a certain type.
UPackage GetOutermost () const
UPackage GetPackage () const
void AddToRoot ()
UWorld GetWorld () const
FName GetName () const
FString GetFullName (const UObject StopOuter=nullptr) const
FString GetPathName (const UObject StopOuter=nullptr) const
bool IsA (const UClass Class) const
 Returns true if this object is of the specified type, or a child of that type.
void SaveConfig ()
void LoadConfig ()
void ReloadConfig ()
void CopyScriptPropertiesFrom (const UObject OtherObject)
void opCast (?&Address) const
FString ToString () const

Static Public Member Functions

Static Functions
static bool CanAnyMovmentModeTargetBeReached (const AGothicCharacter Character, const AGothicCharacter Target, float32 ReachRangeXY, float32 ReachRangeZ, bool bDebugDraw, FVector &OutWalkableCharacterLocation)
 When following TargetCharacter, is the Target within given range at the closest end location? Character does not need a complete path to Target, but that last path point needs to be within ReachRange on XY and both need to be within similar height respective to their character height.
static bool CanGroundedTargetBeReached (const AGothicCharacter Character, const AGothicCharacter Target, float32 ReachRangeXY, float32 ReachRangeZ, bool bDebugDraw, FVector &OutWalkableCharacterLocation)
 When following TargetCharacter, is the Target within given range at the closest end location? This is intended use for a Target that is moving on ground Character does not need a complete path to Target, but that last path point needs to be within ReachRange on XY and both need to be within similar height respective to their character height.
static bool CanLocationBeReached3D (const AGothicCharacter Character, FVector Location3D, float32 ReachRangeXY, float32 ReachRangeZ, bool bFailWhenLocationOnDifferentFloor, bool bDebugDraw, FVector &FoundNavLocation)
static bool CanMoveInDirection (const AGothicCharacter Character, FVector FromLocation, FVector MoveDirection, float32 MoveDistance)
 Can someone move in a straight line from the given location in direction without leaving NavMesh?
static bool CanReachLocationWithoutNavLinks (const AGothicCharacter Character, FVector StartNavAgentLocation, FVector EndLocation, float32 ReachDistance=- 1.000000)
 Can the character reach EndLocation on the closest path without using a NavLink? Character does not need to stand on NavMesh when has a last-valid-navlocation.
static bool CanTargetBeReached3D (const AGothicCharacter Character, const AGothicCharacter Target, float32 ReachRangeXY, float32 ReachRangeZ, bool bDebugDraw, FVector &OutAccessableCharacterLocation)
 When following TargetCharacter, is the Target within given range at the closest end location? This takes any combination of Target and Character MovementModes and situations into account. Be aware it does not automatically use the HalfHeight/Radius of characters. Add them to ReachRangeXY and ReachRangeZ if you require it. If You pass ReachRangeZ 0 and ReachRangeXY 0 that would mean the actor locations of Target + Character would be the same to return a success.
static bool DoesPathExist (const AGothicCharacter Character, FVector StartLocation, FVector EndLocation)
 Returns true, if there is a path between the two given locations. Uses default query extent in project settings.
static bool DoesPathExistCustomAgentSize (const AGothicCharacter Character, FVector StartLocation, FVector EndLocation, float32 AgentRadius, float32 AgentHeight)
 Returns true, if there is a path between the two given locations. Custom extent for querying.
static bool DoesPathExistForUnspawnedCharacter (const UObject WorldContext, const USpawnAIAgentDefinition SpawnDefinition, FVector StartLocation, FVector EndLocation)
static bool DoesPathExistWithinCostLimit (const AGothicCharacter Character, FVector StartLocation, FVector EndLocation, float32 CostLimit)
 Returns true, if there is a path between the two given locations within the given pathfinding cost limit.
static bool DoesPathExistWithinLengthLimit (const AGothicCharacter Character, FVector StartLocation, FVector EndLocation, float32 LengthLimit, float32 &OutPathLength)
 Returns true if there is a path that is shorter than the given LengthLimit.
static float32 GetDistanceUntilMoveObstructed (const AGothicCharacter Character, FVector FromLocation, FVector MoveDirection, float32 MoveDistance)
 Try moving in MoveDirection on NavMesh.
static FVector GetNavigationDatasDefaultQueryExtent ()
static FVector GetNavLocationFrom3DLocation (const AGothicCharacter Character, FVector Location3D)
static bool IsCharacterInRangeOfLocation (const AGothicCharacter Character, const AGothicCharacter OptionalTarget, FVector CharacterLocationToReachOutFrom, FVector TargetLocation, float32 ReachRangeXY, float32 ReachRangeZ, bool bDebugDraw=false)
 When character is standing at given location, is he within ReachRange and are both at similar height?
static bool ProjectCharacterForClosestNavMeshZ (const AGothicCharacter Character, FVector ReferenceCharacterLocation, FVector &OutLocation, FVector Extent=FVector())
 Project the top, middle and bottom location of characters SimpleCollisions and picks the location that is closest to the given ReferenceLocation.
static bool ProjectPoint (const AGothicCharacter Character, FVector Location, FVector &OutLocation)
 Is point on NavMesh?
static bool ProjectPointAnyNavData (const AActor PotentialCharacterStateProvider, FVector Location, FVector &OutLocation, FVector ExtentMultiplier)
 Is point on NavMesh? Tries to retrieve character from given actor to find it's NavMesh and Filter. If this is not possible, location is projected onto MainNavData.
static bool ProjectPointCustomExtentForUnspawnedCharacter (const UObject WorldContext, const USpawnAIAgentDefinition SpawnDefinition, FVector Location, FVector &OutLocation, FVector Extent)
static bool ProjectPointExtent (const AGothicCharacter Character, FVector Location, FVector &OutLocation, FVector Extent)
 Is point on NavMesh?
static bool TryGetRandomNavigablePointInRadius (const AGothicCharacterState CharacterState, FVector Center, float32 Radius, FVector &OutPoint)
 Returns true when a point on NavMesh or Waynet is found within the given radius around center.
static UClass StaticClass ()
Static Public Member Functions inherited from UNavigationSystemBase
static UClass StaticClass ()
Static Public Member Functions inherited from UObject
static UClass StaticClass ()

Public Attributes

Agents
TArray< FNavDataConfig > SupportedAgents
 List of agents types supported by this navigation system.
FNavAgentSelector SupportedAgentsMask
 NavigationSystem's properties in Project Settings define all possible supported agents, but a specific navigation system can choose to support only a subset of agents. Set via NavigationSystemConfig.
Navigation
TSoftClassPtr< UCrowdManagerBase > CrowdManagerClass
FName DefaultAgentName
 If not None indicates which of navigation datas and supported agents are going to be used as the default ones. If navigation agent of this type does not exist or is not enabled then the first available nav data will be used as the default one.
Navigation Enforcing
float32 ActiveTilesUpdateInterval
 Minimal time, in seconds, between active tiles set update.
float InvokersMaximumDistanceFromSeed
 When in use, invokers farther away from any invoker seed will be ignored (set to -1 to disable).
NavigationSystem
float32 GatheringNavModifiersWarningLimitTime
 -1.0f by default, if set to a positive value, all calls to GetNavigationData will be timed and compared to it. Over the limit calls will be logged as warnings. In seconds. Non-shipping build only.
int GeometryExportTriangleCountWarningThreshold
 Warnings are logged if exporting the navigation collision for an object exceed this triangle count. Use -1 to disable.
float32 DirtyAreaWarningSizeThreshold
 -1 by default, if set to a positive value dirty areas with any dimensions in 2d over the threshold created at runtime will be logged
ENavDataGatheringModeConfig DataGatheringMode
 Sets how navigation data should be gathered when building collision information.
Variables
FOnNavDataGenericEvent OnNavigationGenerationFinishedDelegate
Public Attributes inherited from UObject
const UClass Class
const UObject Outer
const UPackage Outermost
const UPackage Package
const UWorld World
const FName Name
const bool IsRooted

AI|Navigation

static bool GetRandomReachablePointInRadius (FVector Origin, FVector &RandomLocation, float32 Radius, ANavigationData NavData=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
 Generates a random location reachable from given Origin location.
static bool NavigationRaycast (FVector RayStart, FVector RayEnd, FVector &HitLocation, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr, AController Querier=nullptr)
 Performs navigation raycast on NavigationData appropriate for given Querier.
static UNavigationSystemV1 GetNavigationSystem ()
 Blueprint functions.
static ENavigationQueryResult GetPathCost (FVector PathStart, FVector PathEnd, float &PathCost, ANavigationData NavData=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
 Potentially expensive. Use with caution. Consider using UPathFollowingComponent::GetRemainingPathCost instead.
static ENavigationQueryResult GetPathLength (FVector PathStart, FVector PathEnd, float &PathLength, ANavigationData NavData=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
 Potentially expensive. Use with caution.
static bool IsNavigationBeingBuilt ()
static bool GetRandomLocationInNavigableRadius (FVector Origin, FVector &RandomLocation, float32 Radius, ANavigationData NavData=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
 Generates a random location in navigable space within given radius of Origin.
static bool ProjectPointToNavigation (FVector Point, FVector &ProjectedLocation, ANavigationData NavData, TSubclassOf< UNavigationQueryFilter > FilterClass, const FVector QueryExtent=FVector())
 Project a point onto the NavigationData.
static UNavigationPath FindPathToActorSynchronously (FVector PathStart, AActor GoalActor, float32 TetherDistance=50.000000, AActor PathfindingContext=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
 Finds path instantly, in a FindPath Synchronously. Main advantage over FindPathToLocationSynchronously is that the resulting path will automatically get updated if goal actor moves more than TetherDistance away from last path node.
static UNavigationPath FindPathToLocationSynchronously (FVector PathStart, FVector PathEnd, AActor PathfindingContext=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
 Finds path instantly, in a FindPath Synchronously.
static bool IsNavigationBeingBuiltOrLocked ()
static bool GetRandomPointInNavigableRadius (FVector Origin, FVector &RandomLocation, float32 Radius, ANavigationData NavData=nullptr, TSubclassOf< UNavigationQueryFilter > FilterClass=nullptr)
void OnNavigationBoundsUpdated (ANavMeshBoundsVolume NavVolume)
 @todo document
void RegisterNavigationInvoker (AActor Invoker, float32 TileGenerationRadius=3000.000000, float32 TileRemovalRadius=5000.000000)
 Registers given actor as a "navigation enforcer" which means navigation system will make sure navigation is being generated in specified radius around it. Note:: you need NavigationSystem's GenerateNavigationOnlyAroundNavigationInvokers to be set to true to take advantage of this feature.
void ResetMaxSimultaneousTileGenerationJobsCount ()
 Brings limit of simultaneous navmesh tile generation jobs back to Project Setting's default value.
void SetMaxSimultaneousTileGenerationJobsCount (int MaxNumberOfJobs)
 will limit the number of simultaneously running navmesh tile generation jobs to specified number.
void UnregisterNavigationInvoker (AActor Invoker)
 Removes given actor from the list of active navigation enforcers. See: RegisterNavigationInvoker for more details.
bool ReplaceAreaInOctreeData (const UObject Object, TSubclassOf< UNavArea > OldArea, TSubclassOf< UNavArea > NewArea)

Member Function Documentation

◆ CanAnyMovmentModeTargetBeReached()

bool CanAnyMovmentModeTargetBeReached ( const AGothicCharacter Character,
const AGothicCharacter Target,
float32 ReachRangeXY,
float32 ReachRangeZ,
bool bDebugDraw,
FVector & OutWalkableCharacterLocation )
static

When following TargetCharacter, is the Target within given range at the closest end location? Character does not need a complete path to Target, but that last path point needs to be within ReachRange on XY and both need to be within similar height respective to their character height.

Parameters
CharacterMoving character
Targetcharacter that should be walked to
ReachRangeXYWhen Target is within that distance around OutWalkableCharacterLocation then Target is considered reachable
ReachRangeZAllowed Difference between ActorLocations on Z axis
bDebugDrawReachRangeXY as cylinder, ReachRangeZ as line, Path (green = true, red = false)
OutWalkableCharacterLocationEither character location of Character on last path point or its current character location

◆ CanGroundedTargetBeReached()

bool CanGroundedTargetBeReached ( const AGothicCharacter Character,
const AGothicCharacter Target,
float32 ReachRangeXY,
float32 ReachRangeZ,
bool bDebugDraw,
FVector & OutWalkableCharacterLocation )
static

When following TargetCharacter, is the Target within given range at the closest end location? This is intended use for a Target that is moving on ground Character does not need a complete path to Target, but that last path point needs to be within ReachRange on XY and both need to be within similar height respective to their character height.

Parameters
CharacterMoving character
Targetcharacter that should be walked to
ReachRangeXYWhen Target is within that distance around OutWalkableCharacterLocation then Target is considered reachable
ReachRangeZAllowed Difference between ActorLocations on Z axis
bDebugDrawReachRangeXY as cylinder, ReachRangeZ as line, Path (green = true, red = false)
OutWalkableCharacterLocationEither character location of Character on last path point or its current character location

◆ CanLocationBeReached3D()

bool CanLocationBeReached3D ( const AGothicCharacter Character,
FVector Location3D,
float32 ReachRangeXY,
float32 ReachRangeZ,
bool bFailWhenLocationOnDifferentFloor,
bool bDebugDraw,
FVector & FoundNavLocation )
static

◆ CanMoveInDirection()

bool CanMoveInDirection ( const AGothicCharacter Character,
FVector FromLocation,
FVector MoveDirection,
float32 MoveDistance )
static

Can someone move in a straight line from the given location in direction without leaving NavMesh?

Parameters
FromLocationLocation to start from. It does not need to be on NavMesh and does not need to be projected
MoveDistanceThe distance that the character will travel in the given direction
Returns
True when move can be performed without leaving NavMesh

◆ CanReachLocationWithoutNavLinks()

bool CanReachLocationWithoutNavLinks ( const AGothicCharacter Character,
FVector StartNavAgentLocation,
FVector EndLocation,
float32 ReachDistance = - 1.000000 )
static

Can the character reach EndLocation on the closest path without using a NavLink? Character does not need to stand on NavMesh when has a last-valid-navlocation.

◆ CanTargetBeReached3D()

bool CanTargetBeReached3D ( const AGothicCharacter Character,
const AGothicCharacter Target,
float32 ReachRangeXY,
float32 ReachRangeZ,
bool bDebugDraw,
FVector & OutAccessableCharacterLocation )
static

When following TargetCharacter, is the Target within given range at the closest end location? This takes any combination of Target and Character MovementModes and situations into account. Be aware it does not automatically use the HalfHeight/Radius of characters. Add them to ReachRangeXY and ReachRangeZ if you require it. If You pass ReachRangeZ 0 and ReachRangeXY 0 that would mean the actor locations of Target + Character would be the same to return a success.

Parameters
CharacterMoving character
Targetcharacter that should be walked to
ReachRangeXYWhen Target is within that distance around OutWalkableCharacterLocation then Target is considered reachable
ReachRangeZAllowed Difference between ActorLocations on Z axis
bDebugDrawReachRangeXY as cylinder, ReachRangeZ as line, Path (green = true, red = false)

◆ DoesPathExist()

bool DoesPathExist ( const AGothicCharacter Character,
FVector StartLocation,
FVector EndLocation )
static

Returns true, if there is a path between the two given locations. Uses default query extent in project settings.

◆ DoesPathExistCustomAgentSize()

bool DoesPathExistCustomAgentSize ( const AGothicCharacter Character,
FVector StartLocation,
FVector EndLocation,
float32 AgentRadius,
float32 AgentHeight )
static

Returns true, if there is a path between the two given locations. Custom extent for querying.

◆ DoesPathExistForUnspawnedCharacter()

bool DoesPathExistForUnspawnedCharacter ( const UObject WorldContext,
const USpawnAIAgentDefinition SpawnDefinition,
FVector StartLocation,
FVector EndLocation )
static

◆ DoesPathExistWithinCostLimit()

bool DoesPathExistWithinCostLimit ( const AGothicCharacter Character,
FVector StartLocation,
FVector EndLocation,
float32 CostLimit )
static

Returns true, if there is a path between the two given locations within the given pathfinding cost limit.

◆ DoesPathExistWithinLengthLimit()

bool DoesPathExistWithinLengthLimit ( const AGothicCharacter Character,
FVector StartLocation,
FVector EndLocation,
float32 LengthLimit,
float32 & OutPathLength )
static

Returns true if there is a path that is shorter than the given LengthLimit.

◆ FindPathToActorSynchronously()

UNavigationPath FindPathToActorSynchronously ( FVector PathStart,
AActor GoalActor,
float32 TetherDistance = 50.000000,
AActor PathfindingContext = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

Finds path instantly, in a FindPath Synchronously. Main advantage over FindPathToLocationSynchronously is that the resulting path will automatically get updated if goal actor moves more than TetherDistance away from last path node.

Parameters
PathfindingContextcould be one of following: NavigationData (like Navmesh actor), Pawn or Controller. This parameter determines parameters of specific pathfinding query

◆ FindPathToLocationSynchronously()

UNavigationPath FindPathToLocationSynchronously ( FVector PathStart,
FVector PathEnd,
AActor PathfindingContext = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

Finds path instantly, in a FindPath Synchronously.

Parameters
PathfindingContextcould be one of following: NavigationData (like Navmesh actor), Pawn or Controller. This parameter determines parameters of specific pathfinding query

◆ GetDistanceUntilMoveObstructed()

float32 GetDistanceUntilMoveObstructed ( const AGothicCharacter Character,
FVector FromLocation,
FVector MoveDirection,
float32 MoveDistance )
static

Try moving in MoveDirection on NavMesh.

Parameters
FromLocationLocation to start from. It does not need to be on NavMesh and does not need to be projected
Returns
When move would leave NavMesh return distance to NavMesh border, else MoveDistance.

◆ GetNavigationDatasDefaultQueryExtent()

FVector GetNavigationDatasDefaultQueryExtent ( )
static

◆ GetNavigationSystem()

UNavigationSystemV1 GetNavigationSystem ( )
static

Blueprint functions.

◆ GetNavLocationFrom3DLocation()

FVector GetNavLocationFrom3DLocation ( const AGothicCharacter Character,
FVector Location3D )
static

◆ GetPathCost()

ENavigationQueryResult GetPathCost ( FVector PathStart,
FVector PathEnd,
float & PathCost,
ANavigationData NavData = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

Potentially expensive. Use with caution. Consider using UPathFollowingComponent::GetRemainingPathCost instead.

◆ GetPathLength()

ENavigationQueryResult GetPathLength ( FVector PathStart,
FVector PathEnd,
float & PathLength,
ANavigationData NavData = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

Potentially expensive. Use with caution.

◆ GetRandomLocationInNavigableRadius()

bool GetRandomLocationInNavigableRadius ( FVector Origin,
FVector & RandomLocation,
float32 Radius,
ANavigationData NavData = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

Generates a random location in navigable space within given radius of Origin.

Returns
Return Value represents if the call was successful

◆ GetRandomPointInNavigableRadius()

bool GetRandomPointInNavigableRadius ( FVector Origin,
FVector & RandomLocation,
float32 Radius,
ANavigationData NavData = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

◆ GetRandomReachablePointInRadius()

bool GetRandomReachablePointInRadius ( FVector Origin,
FVector & RandomLocation,
float32 Radius,
ANavigationData NavData = nullptr,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr )
static

Generates a random location reachable from given Origin location.

Returns
Return Value represents if the call was successful

◆ IsCharacterInRangeOfLocation()

bool IsCharacterInRangeOfLocation ( const AGothicCharacter Character,
const AGothicCharacter OptionalTarget,
FVector CharacterLocationToReachOutFrom,
FVector TargetLocation,
float32 ReachRangeXY,
float32 ReachRangeZ,
bool bDebugDraw = false )
static

When character is standing at given location, is he within ReachRange and are both at similar height?

Parameters
CharacterMoving character
OptionalTargetcharacter that should be walked to
CharacterLocationToReachOutFromEither character location of Character on last path point or its current character location
ReachRangeXYWhen Target is within that distance around OutWalkableCharacterLocation then Target is considered reachable
ReachRangeZAllowed Difference between ActorLocations on Z axis

◆ IsNavigationBeingBuilt()

bool IsNavigationBeingBuilt ( )
static

◆ IsNavigationBeingBuiltOrLocked()

bool IsNavigationBeingBuiltOrLocked ( )
static

◆ NavigationRaycast()

bool NavigationRaycast ( FVector RayStart,
FVector RayEnd,
FVector & HitLocation,
TSubclassOf< UNavigationQueryFilter > FilterClass = nullptr,
AController Querier = nullptr )
static

Performs navigation raycast on NavigationData appropriate for given Querier.

Parameters
HitLocationif line was obstructed this will be set to hit location. Otherwise it contains SegmentEnd
Querierif not passed default navigation data will be used
Returns
true if line from RayStart to RayEnd was obstructed. Also, true when no navigation data present

◆ OnNavigationBoundsUpdated()

void OnNavigationBoundsUpdated ( ANavMeshBoundsVolume NavVolume)

@todo document

◆ ProjectCharacterForClosestNavMeshZ()

bool ProjectCharacterForClosestNavMeshZ ( const AGothicCharacter Character,
FVector ReferenceCharacterLocation,
FVector & OutLocation,
FVector Extent = FVector ( ) )
static

Project the top, middle and bottom location of characters SimpleCollisions and picks the location that is closest to the given ReferenceLocation.

◆ ProjectPoint()

bool ProjectPoint ( const AGothicCharacter Character,
FVector Location,
FVector & OutLocation )
static

Is point on NavMesh?

◆ ProjectPointAnyNavData()

bool ProjectPointAnyNavData ( const AActor PotentialCharacterStateProvider,
FVector Location,
FVector & OutLocation,
FVector ExtentMultiplier )
static

Is point on NavMesh? Tries to retrieve character from given actor to find it's NavMesh and Filter. If this is not possible, location is projected onto MainNavData.

◆ ProjectPointCustomExtentForUnspawnedCharacter()

bool ProjectPointCustomExtentForUnspawnedCharacter ( const UObject WorldContext,
const USpawnAIAgentDefinition SpawnDefinition,
FVector Location,
FVector & OutLocation,
FVector Extent )
static

◆ ProjectPointExtent()

bool ProjectPointExtent ( const AGothicCharacter Character,
FVector Location,
FVector & OutLocation,
FVector Extent )
static

Is point on NavMesh?

◆ ProjectPointToNavigation()

bool ProjectPointToNavigation ( FVector Point,
FVector & ProjectedLocation,
ANavigationData NavData,
TSubclassOf< UNavigationQueryFilter > FilterClass,
const FVector QueryExtent = FVector ( ) )
static

Project a point onto the NavigationData.

◆ RegisterNavigationInvoker()

void RegisterNavigationInvoker ( AActor Invoker,
float32 TileGenerationRadius = 3000.000000,
float32 TileRemovalRadius = 5000.000000 )

Registers given actor as a "navigation enforcer" which means navigation system will make sure navigation is being generated in specified radius around it. Note:: you need NavigationSystem's GenerateNavigationOnlyAroundNavigationInvokers to be set to true to take advantage of this feature.

◆ ReplaceAreaInOctreeData()

bool ReplaceAreaInOctreeData ( const UObject Object,
TSubclassOf< UNavArea > OldArea,
TSubclassOf< UNavArea > NewArea )

◆ ResetMaxSimultaneousTileGenerationJobsCount()

void ResetMaxSimultaneousTileGenerationJobsCount ( )

Brings limit of simultaneous navmesh tile generation jobs back to Project Setting's default value.

◆ SetbAllowClientSideNavigation()

void SetbAllowClientSideNavigation ( bool Value)

If false, will not create nav collision when connecting as a client.

◆ SetbAutoCreateNavigationData()

void SetbAutoCreateNavigationData ( bool Value)

Should navigation system spawn default Navigation Data when there's none and there are navigation bounds present?

◆ SetbGenerateNavigationOnlyAroundNavigationInvokers()

void SetbGenerateNavigationOnlyAroundNavigationInvokers ( bool Value)

If set to true navigation will be generated only around registered "navigation enforcers" This has a range of consequences (including how navigation octree operates) so it needs to be a conscious decision. Once enabled results in whole world being navigable. See: RegisterNavigationInvoker.

◆ SetbInitialBuildingLocked()

void SetbInitialBuildingLocked ( bool Value)

if set to true will result navigation system not rebuild navigation until a call to ReleaseInitialBuildingLock() is called. Does not influence editor-time generation (i.e. does influence PIE and Game). Defaults to false.

◆ SetbShouldDiscardSubLevelNavData()

void SetbShouldDiscardSubLevelNavData ( bool Value)

If true, games should ignore navigation data inside loaded sublevels.

◆ SetbSkipAgentHeightCheckWhenPickingNavData()

void SetbSkipAgentHeightCheckWhenPickingNavData ( bool Value)

false by default, if set to true will result in not caring about nav agent height when trying to match navigation data to passed in nav agent

◆ SetbSpawnNavDataInNavBoundsLevel()

void SetbSpawnNavDataInNavBoundsLevel ( bool Value)

If true will try to spawn the navigation data instance in the sublevel with navigation bounds, if false it will spawn in the persistent level.

◆ SetbTickWhilePaused()

void SetbTickWhilePaused ( bool Value)

If true, will update navigation even when the game is paused.

◆ SetGeometryGatheringMode()

void SetGeometryGatheringMode ( ENavDataGatheringModeConfig NewMode)

◆ SetMaxSimultaneousTileGenerationJobsCount()

void SetMaxSimultaneousTileGenerationJobsCount ( int MaxNumberOfJobs)

will limit the number of simultaneously running navmesh tile generation jobs to specified number.

Parameters
MaxNumberOfJobsgets trimmed to be at least 1. You cannot use this function to pause navmesh generation

◆ StaticClass()

UClass StaticClass ( )
static

◆ TryGetRandomNavigablePointInRadius()

bool TryGetRandomNavigablePointInRadius ( const AGothicCharacterState CharacterState,
FVector Center,
float32 Radius,
FVector & OutPoint )
static

Returns true when a point on NavMesh or Waynet is found within the given radius around center.

  • This does not test the path towards it
  • Waynet is only tested when the CharacterState uses GlobalNavData
  • NavMesh is tested first, then Waynet Nodes, NOT points on Waynet Paths between the nodes

◆ UnregisterNavigationInvoker()

void UnregisterNavigationInvoker ( AActor Invoker)

Removes given actor from the list of active navigation enforcers. See: RegisterNavigationInvoker for more details.

Member Data Documentation

◆ ActiveTilesUpdateInterval

float32 ActiveTilesUpdateInterval

Minimal time, in seconds, between active tiles set update.

◆ CrowdManagerClass

TSoftClassPtr<UCrowdManagerBase> CrowdManagerClass

◆ DataGatheringMode

ENavDataGatheringModeConfig DataGatheringMode

Sets how navigation data should be gathered when building collision information.

◆ DefaultAgentName

FName DefaultAgentName

If not None indicates which of navigation datas and supported agents are going to be used as the default ones. If navigation agent of this type does not exist or is not enabled then the first available nav data will be used as the default one.

◆ DirtyAreaWarningSizeThreshold

float32 DirtyAreaWarningSizeThreshold

-1 by default, if set to a positive value dirty areas with any dimensions in 2d over the threshold created at runtime will be logged

◆ GatheringNavModifiersWarningLimitTime

float32 GatheringNavModifiersWarningLimitTime

-1.0f by default, if set to a positive value, all calls to GetNavigationData will be timed and compared to it. Over the limit calls will be logged as warnings. In seconds. Non-shipping build only.

◆ GeometryExportTriangleCountWarningThreshold

int GeometryExportTriangleCountWarningThreshold

Warnings are logged if exporting the navigation collision for an object exceed this triangle count. Use -1 to disable.

◆ InvokersMaximumDistanceFromSeed

float InvokersMaximumDistanceFromSeed

When in use, invokers farther away from any invoker seed will be ignored (set to -1 to disable).

◆ OnNavigationGenerationFinishedDelegate

FOnNavDataGenericEvent OnNavigationGenerationFinishedDelegate

◆ SupportedAgents

TArray<FNavDataConfig> SupportedAgents

List of agents types supported by this navigation system.

◆ SupportedAgentsMask

FNavAgentSelector SupportedAgentsMask

NavigationSystem's properties in Project Settings define all possible supported agents, but a specific navigation system can choose to support only a subset of agents. Set via NavigationSystemConfig.