NavMeshAgents always drift around instead of turning.

I had to use the Unity navigation system for the first time today, in a very simple set up: the level is just a single plane, and there’s a whole bunch of agents being told to run to certain destinations. That all works fine, it’s just that the agents always simply interpolate their position and rotation towards the target destination, instead of actually moving forwards while turning, forming a turning circle. I figure I must be doing something wrong, because I can’t believe that something as basic as this doesn’t work out of the box. I did a lot of searching but I can’t find anything useful on the subject.

So, how do I stop my agents from sliding all over the place and have them rotate properly instead? Setting a very high angular velocity hides the shortcomings, but that’s not really the result I’m going for.

The Nav Mesh Agent considers a lot of staff like velocity, acceleration, braking force etc. That means if your game object is moving at a certain velocity its rate of rotation will be determined by that velocity. Increasing the angular velocity might not give the results you need. You can try to make your own steering script by using the Character Controller script. I tried to use the Nav Mesh Agent but I wasn’t happy with the motion so I had to write my own script though you will have to handle your acceleration, rotation etc