# updatePosition

> Gets or sets whether the transform position is synchronized with the simulated agent position. The default value is true.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine.AI](/engine/6000.3/script-reference/unityengine/ai.md)
* **Assembly:** UnityEngine.AIModule

```csharp
public bool updatePosition { get; set; }
```

### Remarks

When true: changing the transform position will affect the simulated position and vice-versa.

When false: the simulated position will not be applied to the transform position and vice-versa.

Setting [NavMeshAgent.updatePosition](/engine/6000.3/script-reference/unityengine/ai/navmeshagent/updateposition.md) to false can be used to enable explicit control of the transform position via script. This allows you to use the agent's simulated position to drive another component, which in turn sets the transform position (eg. animation with root motion or physics).

When enabling the [NavMeshAgent.updatePosition](/engine/6000.3/script-reference/unityengine/ai/navmeshagent/updateposition.md) (from previously being disabled), the transform will be moved to the simulated position. This way the agent stays constrained to the navmesh surface.
