Erratic behaviour with RichAI and Funnel Simplification enabled

I am finding that RichAI agents with Funnel Simplification will start behaving oddly when the system is under a good load. The objects will start moving through obstacles, and jumping to nodes that are not connected. When the load is reduced, everything behaves fine. If I turn off Funnel Simplification, everything works fine.

Another really weird thing that may or not be related is that I will experience odd behaviour if I turn off “Always Draw Gizmos” in Seeker. This is the same in editor or in runtime build. I had a quick look at code referencing this and does not make sense. If I leave on “Always Draw Gizmos” then everything behaves fine. Performance in runtime build does not seem to get affected either way.


Do you have a video of this? That could help me determine the likely cause.

Do you mean ‘Draw Gizmos’ on the Seeker or ‘Always Draw Gizmos’ on the AIPath script (which I don’t even think you are using)? There is no ‘Always Draw Gizmos’ toggle on the Seeker component.
What kind of odd behavior are you seeing?

Also. Which version are you using?

“Draw Gizmo” on Seeker component. Occasionally RichAI objects will get stuck or run back and forth in small loops. I have tested quite a bit and really seems related. Usually it is just a couple of seekers out of a horde but here is a video with an extreme example:

I think I have tracked it down to this code in Seeker.cs - OnPathComplete()

// If not drawing gizmos, then storing prevPath is quite unecessary
// So clear it and set prevPath to null
if (!drawGizmos) ReleaseClaimedPath();

Looks like this code gets processed in runtime as well as in the editor. So if I leave “Draw Gizmos” enabled, it seems to fix this particular issue with guys getting “stuck”. Might be a small hit on FPS but did not seem like much.

Strange. Are you using some custom movement script or some custom changes to it? Or are you calculating paths manually at some point?

No changes or any manual path changes. If I comment out that one line then everything seems to behave ok. Not sure of the implications of doing that…