Legacy Documentation: Version 2018.1 (Go to current version)
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Experimental: this API is experimental and might be changed or removed in the future.

NavMeshQuery.MoveLocation

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

public method MoveLocation(location: Experimental.AI.NavMeshLocation, target: Vector3, areaMask: int): Experimental.AI.NavMeshLocation;
public Experimental.AI.NavMeshLocation MoveLocation(Experimental.AI.NavMeshLocation location, Vector3 target, int areaMask);

Parameters

locationPosition to be moved across the NavMesh surface.
targetWorld position you require the agent to move to.
areaMaskBitmask with values of 1 set at the indices corresponding to areas that can be traversed, and with values of 0 for areas that should not be traversed. This parameter can be omitted, in which case it defaults to NavMesh.AllAreas. See Also: Areas and Costs.

Returns

NavMeshLocation A new location on the NavMesh placed as closely as possible to the specified target position.
The start location is returned when that start is inside an area which is not allowed by the areaMask.

Description

Translates a NavMesh location to another position without losing contact with the surface.

Returns the location on the NavMesh that is closest to the target position and that also has a continuous connection on the NavMesh surface through the allowed area types all the way to the start position specified by the location parameter. If the target position is outside the edges of the surface or of its allowed areas, a position at the edge is returned.

The movement does not cross NavMeshLinks or Off-mesh Links.

The result might not be accurate (the closest) if the pathNodePoolSize value in the NavMeshQuery initialization was not large enough to accommodate all the nodes that needed to be traversed in order to find a connection between location.position and target.

See Also: NavMeshQuery.MoveLocations, NavMeshQuery.MoveLocationsInSameAreas.

Did you find this page useful? Please give it a rating: