The following two parts of code: Code (csharp): public void moveTo(Vector3 position, string tatami_name) { moving = true; Debug.Log ("moving to: " + position.x + ", " + position.y); agent.destination = position; } void Update () { if (!agent.pathPending && moving) { if (agent.remainingDistance <= agent.stoppingDistance) { if (!agent.hasPath || agent.velocity.sqrMagnitude == 0f) { Debug.Log ("stopped at: " + transform.position.x + ", " + transform.position.y); } } } } Log that: Code (csharp): moving to: 2, -0.5 stopped at: 2, 0.00333333