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


Suggest a change


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.


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.



public Experimental.AI.PathQueryStatus BeginFindPath(Experimental.AI.NavMeshLocation start, Experimental.AI.NavMeshLocation end, int areaMask, NativeArray<float> costs);


costsArray of custom cost values for all of the 32 possible area types. Each value must be at least 1.0f. This parameter is optional and defaults to the area costs configured in the project settings. See Also: NavMesh.GetAreaCost.
areaMaskBitmask with values of 1 set at the indices for areas that can be traversed, and values of 0 for areas that are not traversable. This parameter is optional and defaults to NavMesh.AllAreas, if omitted. See Also: Areas and Costs.
startThe start location on the NavMesh for the path.
endThe location on the NavMesh where the path ends.


PathQueryStatus InProgress if the operation was successful and the query is ready to search for a path.
Failure if the query's NavMeshWorld or any of the received parameters are no longer valid.


Initiates a pathfinding operation between two locations on the NavMesh.

The path always begins at the specified location. If the desired end location is not directly accessible, the search algorithm tries to find a valid location nearby.
Calling this method overrides the progress made by this NavMeshQuery in the previous pathfinding operation.

NavMeshQuery.UpdateFindPath should be called after this method to process the path search.

See Also: PathQueryStatus.