Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


MoveLocation(NavMeshLocation, Vector3, int)

Translates a NavMesh location to another position without losing contact with the surface.
Read time 1 minuteLast updated 9 days ago

Definition

Warning
Deprecated. The experimental NavMeshQuery struct has been deprecated. Use NavWorld instead.
public NavMeshLocation MoveLocation(NavMeshLocation location, Vector3 target, int areaMask = -1)

Parameters

Position to be moved across the NavMesh surface.

target

World position you require the agent to move to.

areaMask

Bitmask 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.

Returns

Type

Description

NavMeshLocationA new location on the NavMesh placed as closely as possible to the specified
target
position.

Remarks

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 OffMeshLinks.
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
.