Class NavMeshRuntime
The navigation mesh runtime object that builds the navmesh from all loaded scenes.
Assembly: FlaxEngine.dll
File: Engine/Navigation/NavMeshRuntime.h
Syntax
public class NavMeshRuntime : public ScriptingObject
The navigation mesh runtime object that builds the navmesh from all loaded scenes.
public class NavMeshRuntime : public ScriptingObject
public ~NavMeshRuntime()
Projects the point to nav mesh surface (finds the nearest polygon). [Deprecated in v1.8]
public DEPRECATED("Use FindClosestPoint instead") bool ProjectPoint(const Vector3& point
|
"Use FindClosestPoint instead"
NavMeshRuntime_DEPRECATED__Use_FindClosestPoint_instead__
|
public NavMeshRuntime(const NavMeshProperties& properties)
|
NavMeshProperties
properties
|
public Vector3result const{
return FindClosestPoint(point, result)
|
Vector3result
|
The object locker.
public CriticalSection Locker
|
CriticalSection
|
public static float NavAreasCosts[64]
|
float
|
The navigation mesh properties.
public NavMeshProperties Properties
|
NavMeshProperties
|
Adds the tile from the given scene to the runtime navmesh.
public void AddTile(NavMesh* navMesh, NavMeshTileData& tileData)
|
NavMesh
navMesh
The navigation mesh. |
|
NavMeshTileData
tileData
The tile data. |
Adds the tiles from the given scene to the runtime navmesh.
public void AddTiles(NavMesh* navMesh)
|
NavMesh
navMesh
The navigation mesh. |
public void DebugDraw()
Releases the navmesh.
public void Dispose()
Ensures the navmesh capacity for adding new tiles. Performs resizing if needed.
public void EnsureCapacity(int32 tilesToAddCount)
|
int32
tilesToAddCount
The new tiles amount. |
Finds the nearest point on a nav mesh surface.
public bool FindClosestPoint(const Vector3& point, Vector3& result) const
|
Vector3
point
The source point. |
|
Vector3
result
The result position on the navmesh (valid only if method returns true). |
|
bool
True if found valid location on the navmesh, otherwise false. |
Finds the distance from the specified start position to the nearest polygon wall.
public bool FindDistanceToWall(const Vector3& startPosition, NavMeshHit& hitInfo, float maxDistance=MAX_float) const
|
Vector3
startPosition
The start position. |
|
NavMeshHit
hitInfo
The result hit information. Valid only when query succeed. |
|
float
maxDistance
The maximum distance to search for wall (search radius). |
|
bool
True if ray hits an matching object, otherwise false. |
Finds the path between the two positions presented as a list of waypoints stored in the corners array.
public bool FindPath(const Vector3& startPosition, const Vector3& endPosition, Array<Vector3, HeapAllocation>& resultPath) const
|
Vector3
startPosition
The start position. |
|
Vector3
endPosition
The end position. |
|
Array<Vector3, HeapAllocation>
resultPath
The result path. |
|
bool
True if found valid path between given two points (it may be partial), otherwise false if failed. |
Finds the path between the two positions presented as a list of waypoints stored in the corners array.
public bool FindPath(const Vector3& startPosition, const Vector3& endPosition, Array<Vector3, HeapAllocation>& resultPath, NavMeshPathFlags& resultFlags) const
|
Vector3
startPosition
The start position. |
|
Vector3
endPosition
The end position. |
|
Array<Vector3, HeapAllocation>
resultPath
The result path. |
|
NavMeshPathFlags
resultFlags
The result path flags. |
|
bool
True if found valid path between given two points (it may be partial), otherwise false if failed. |
Finds random location on nav mesh.
public bool FindRandomPoint(Vector3& result) const
|
Vector3
result
The result position on the navmesh (valid only if method returns true). |
|
bool
True if found valid location on the navmesh, otherwise false. |
Finds random location on nav mesh within the reach of specified location.
public bool FindRandomPointAroundCircle(const Vector3& center, float radius, Vector3& result) const
|
Vector3
center
The source point to find random location around it. |
|
float
radius
The search distance for a random point. Maximum distance for a result point from the center of the circle. |
|
Vector3
result
The result position on the navmesh (valid only if method returns true). |
|
bool
True if found valid location on the navmesh, otherwise false. |
public static NavMeshRuntime* Get(const NavAgentProperties& agentProperties)
|
NavAgentProperties
agentProperties
|
|
NavMeshRuntime
|
public static NavMeshRuntime* Get(const NavMeshProperties& navMeshProperties, bool createIfMissing=false)
|
NavMeshProperties
navMeshProperties
|
|
bool
createIfMissing
|
|
NavMeshRuntime
|
public static NavMeshRuntime* Get(const StringView& navMeshName)
|
StringView
navMeshName
|
|
NavMeshRuntime
|
public dtNavMesh* GetNavMesh() const
|
dtNavMesh
|
public dtNavMeshQuery* GetNavMeshQuery() const
|
dtNavMeshQuery
|
public int32 GetTilesCapacity() const
|
int32
|
Gets the size of the tile (in world-units). Returns zero if not initialized yet.
public float GetTileSize() const
|
float
|
Casts a 'walkability' ray along the surface of the navigation mesh from the start position toward the end position.
public bool RayCast(const Vector3& startPosition, const Vector3& endPosition, NavMeshHit& hitInfo) const
|
Vector3
startPosition
The start position. |
|
Vector3
endPosition
The end position. |
|
NavMeshHit
hitInfo
The result hit information. Valid only when query succeed. |
|
bool
True if ray hits an matching object, otherwise false. |
Removes the tile from the navmesh.
public void RemoveTile(int32 x, int32 y, int32 layer)
|
int32
x
The tile X coordinate. |
|
int32
y
The tile Y coordinate. |
|
int32
layer
The tile layer. |
Removes all the tiles that custom prediction callback marks.
public void RemoveTiles(bool(*prediction)(const NavMeshRuntime* navMesh, const NavMeshTile& tile, void* customData), void* userData)
|
bool()(NavMeshRuntime navMesh, NavMeshTiletile, void customData)
prediction
The prediction callback, returns true for tiles to remove and false for tiles to preserve. |
|
void
userData
The user data passed to the callback method. |
Removes all the tiles from the navmesh that has been added from the given navigation scene.
public void RemoveTiles(NavMesh* navMesh)
|
NavMesh
navMesh
The navigation mesh. |
Sets the size of the tile (if not assigned). Disposes the mesh if added tiles have different size.
public void SetTileSize(float tileSize)
|
float
tileSize
The size of the tile. |
Tests the path between the two positions (non-partial).
public bool TestPath(const Vector3& startPosition, const Vector3& endPosition) const
|
Vector3
startPosition
The start position. |
|
Vector3
endPosition
The end position. |
|
bool
True if found valid path between given two points, otherwise false if failed. |