Version: 2023.1
LanguageEnglish
  • C#
Experimental: this API is experimental and might be changed or removed in the future.

NavMeshQuery

struct in UnityEngine.Experimental.AI

/

Implemented in:UnityEngine.AIModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

Object used for doing navigation operations in a NavMeshWorld.

NavMeshQuery operations can be executed inside jobs (IJob, IJobParallelFor), as opposed to the operations in the NavMesh-related structures.

To obtain a path between two locations on the NavMesh, you must create a NavMeshQuery with a pathNodePoolSize value in the range from 1 to 65,535. After creating a NavMeshQuery, you must call the following methods in this order: BeginFindPath, UpdateFindPath (can be repeated), EndFindPath, GetPathResult. These methods store state data within the NavMeshQuery. Other methods can be called in any order since they do not change state data.

All methods throw exceptions if any of their parameters are not valid when executed in the Editor.

Note: The intended feature set for NavMeshQuery is not yet fully complete.

Constructors

NavMeshQueryCreates the NavMeshQuery object and allocates memory to store NavMesh node information, if required.

Public Methods

BeginFindPathInitiates a pathfinding operation between two locations on the NavMesh.
CreateLocationReturns a valid NavMeshLocation for a position and a polygon provided by the user.
DisposeDestroys the NavMeshQuery and deallocates all memory used by it.
EndFindPathObtains the number of nodes in the path that has been computed during a successful NavMeshQuery.UpdateFindPath operation.
GetAgentTypeIdForPolygonReturns the identifier of the agent type the NavMesh was baked for or for which the link has been configured.
GetEdgesAndNeighborsRetrieves the vertices of a given node and the identifiers of all the navigation nodes to which it connects.
GetPathResultCopies into the provided array the list of NavMesh nodes that form the path found by the NavMeshQuery operation.
GetPolygonTypeReturns whether the NavMesh node is a polygon or a link.
GetPortalPointsObtains the end points of the line segment common to two adjacent NavMesh nodes.
IsValidReturns true if the node referenced by the specified PolygonId is active in the NavMesh.
MapLocationFinds the closest point and PolygonId on the NavMesh for a given world position.
MoveLocationTranslates a NavMesh location to another position without losing contact with the surface.
MoveLocationsTranslates a series of NavMesh locations to other positions without losing contact with the surface.
MoveLocationsInSameAreasTranslates a series of NavMesh locations to other positions without losing contact with the surface, given one common area filter for all of them.
PolygonLocalToWorldMatrixReturns the transformation matrix of the NavMesh surface that contains the specified NavMesh node (Read Only).
PolygonWorldToLocalMatrixReturns the inverse transformation matrix of the NavMesh surface that contains the specified NavMesh node (Read Only).
RaycastTrace a line between two points on the NavMesh.
UpdateFindPathContinues a path search that is in progress.