ricardojmendez / UnitySteer

Steering, obstacle avoidance and path following behaviors for the Unity Game Engine
https://numergent.com/tags/unitysteer/
Other
1.21k stars 277 forks source link

Fix SteerForPathSimplified2D still getting stuck on loops #48

Open sinbad opened 7 years ago

sinbad commented 7 years ago

If resolving a loop means advancing further than 2*Vehicle.ArrivalRadius, the previous code would always stall. This change means that we will always resolve a loop no matter how loopy it is (usually max 2/3 iterations).

I came across this case quite often for some reason and I realised because it only tried to advance once, if that didn't work, it would never resolve it. Making it a while loop works and is guaranteed to exit in edge cases since it's bounded by the path length.