So I have enemies that have different movement patterns. Ex: one of them faces player while pivoting with shield, another one might want to stay away from player etc. The point is that they don't directly target the player when moving. So I can't set navigation target to the player. Unless I set the points every frame. Is that a bad idea? I see that navmeshagent.velocity exists. If don't want to beeline for the player but know which direction I want to go, can I just set that for the desired effect and not worry about collisions with obstacles? Another problem is that they must respect collision and stay away from each other. Navmesh already does that. But I also need to make them stay away from the player if needed. Like an enemy might wan't to back off after attacking. increasing stopping distance does not seem to make agents back off if they are already near the target. Sometimes I want to tell the enemy to flank the player Or simply maintain an angle with the player. Navmesh will always use shortest path. Is there any alternative to setting the target behind the player and hoping for the best in this scenario?