# MoveLocations(NativeSlice<NavMeshLocation>, NativeSlice<Vector3>, NativeSlice<int>)

> Translates a series of NavMesh locations to other positions without losing contact with the surface.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Experimental.AI](/engine/6000.6/script-reference/unityengine/experimental/ai.md)
* **Assembly:** UnityEngine.AIModule

> **Warning:**
>
> **Deprecated.** The experimental NavMeshQuery struct has been deprecated. Use NavWorld instead.

```csharp
public void MoveLocations(NativeSlice<NavMeshLocation> locations, NativeSlice<Vector3> targets, NativeSlice<int> areaMasks)
```

### Parameters

**** (\[NativeSlice\<NavMeshLocation>]\(/engine/6000.6/script-reference/unity/collections/nativeslice1)): Array of positions to be moved across the NavMesh surface. At the end of the method call this array contains the resulting locations.**** (\[NativeSlice\<Vector3>]\(/engine/6000.6/script-reference/unity/collections/nativeslice1)): World positions to be used as movement targets by the agent.**** (\[NativeSlice\<int>]\(/engine/6000.6/script-reference/unity/collections/nativeslice1)): Filters for the areas which can be traversed during the movement to each of the locations.

### Remarks

Does the exact same thing as [NavMeshQuery.MoveLocation](/engine/6000.6/script-reference/unityengine/experimental/ai/navmeshquery/movelocation.md) only it acts sequentially on a batch of locations, given their respective targets and area filters. All three array parameters must have the same length.

The results are returned in-place in the `locations` array.

Additional Resources: [NavMeshQuery.MoveLocationsInSameAreas](/engine/6000.6/script-reference/unityengine/experimental/ai/navmeshquery/movelocationsinsameareas.md), [NavMeshLocation](/engine/6000.6/script-reference/unityengine/experimental/ai/navmeshlocation.md)
