I’m using a Point Graph in a project that has World Portals (like Prey, etc…), not to be confused with the Funnel Modifier portal stuff
Each portal gets a point node associated, so when the portal has a target, it calls this.pointNode.AddConnection( targetPortal.pointNode, cost ), creating a connection to traverse the world portal.
Currently I just set the cost to a value based on the original connectionCosts of the node (the Min of them)- that is stored when first baking the graph. So that it behaves as if the connection was to a nearby node- all the nodes have roughly the same spacing. This is because I wouldn’t want the real cost of the distance, ex: if the portal was linking a destination 50 meters away, walking through the portal gets you there immediately, so the true cost isn’t suitable.
This all seems to be working- things pathfind through the portals; but then digging through the code I noticed in Path.cs there is CalculateHScore which looks to be using the int3 positions of nodes. So for a world portal connection, it might be seeing that they are 50 meters away in world space.
I’m wondering, could that potentially conflict with the low connection cost I’m putting in for the World Portals? Or is it more to do with how the system chooses what nodes to search initially? I currently use the Manhattan heuristic.
I haven’t spotted anything strange with the calculated paths, just more wondering if it could cause trouble in how the best paths are chosen. The A* asset has been working wonderfully for my project so far!