The NavMeshAgentMovement ability will move the character along a Unity NavMesh. This ability will read the velocity from the NavMeshAgent and translate that into inputs that the Ultimate Character Controller can understand. This ability should be positioned higher than the Speed Change ability within the ability list.


  1. Select the + button in the ability list under the “Abilities” foldout of the Ultimate Character Locomotion component.
  2. Add the NavMeshAgent Movement ability. The NavMeshAgent component will automatically be added if it has not been already.
  3. Ensure the ability is positioned above the Speed Change ability. This will allow the Speed Change to change the NavMeshAgent’s speed.
  4. Ensure your scene has an active navigation mesh.


If you use root motion and adjust the speed on the NavMeshAgent component you’ll find that the speed parameter doesn’t change the character’s speed. This is because the animation is controlling the character’s speed rather than the NavMeshAgent. In order to change the speed of the character you should use the Speed Change ability which will then allow the correct animation to play based on the desired speed.