- A* version: 5.3.3
- Unity version: 6000.0.36f1
Prior to upgrade to 5.x, we were using a custom implementation of GridGraph, along with a custom Funnel modifier to simplify paths. After upgrade, I wanted to get rid of most of the custom code, because it was incompatible with the new version of library, and I tried using Funnel modifier for paths on a GridGraph, which delegates to GridStringPulling class.
Unfortunately, our graph contains many node links which add custom connections, and in this case GridStringPulling enters infinite loop, because it does not take them into account, since it only uses Linecast to check LOS between nodes.
I think this is fixable: we must extend LOS definition to include any two nodes connected by a custom connection, i.e. two path points have LOS if either Linecast fails to find an obstacle OR they are connected with a custom connection. This should allow GridStringPulling to simplify the path by adding both points to output path.
Alternatively, if this doesn’t work in some case, path to be simplified can be split into several parts connected with custom connections, and each part simplified separately - that’ll work, too.