GraphUpdateUtilities.UpdateGraphsNoBlock doesn't revert changes.

Hi,

I work on the game Arcane’s tower defense that we have started to port from WP7 to Unity (all platforms). We had our own pathfinding solution working perfectly on the WP7 version of the game but I decided to take a look at your asset to replace it.

I wanted to say that your asset is really awesome (we have the PRO). The documentation is very good and it is also a good thing to have access to the source code to understand how the whole thing works. The scan process also works really good with our own Warcraft3-style tiled terrain.

I have a problem when I use the GraphUpdateUtilities.UpdateGraphsNoBlock. The player is not allowed to build a Tower if it can block the path, thats why i have to do this check. The function returns false when it actually blocks the path, however the nodes are not correclty reverted.

Ps : here is a video of the game I’m working on http://www.youtube.com/watch?v=9jNaK2P1WL0

Any idea about my issue ?
I found a temporary fix but that is not a good solution.

Well~ Could you post the script you are using?? That would help a lot~

Anywho, I will try to come up with a different way of fixing this:

Put this somewhere~
`
public bool CheckIfPathIsPossible(Vector3 PathStart,Vector3 PathEnd){

	Pathfinding.Node node1 = AstarPath.active.GetNearest(PathStart, NNConstraint.Default).node;
	Pathfinding.Node node2 = AstarPath.active.GetNearest(PathEnd, NNConstraint.Default).node;
	
	if (!Pathfinding.PathUtilities.IsPathPossible (node1,node2)) {	
		
		return(false);
	}
	else{
		
		return(true);
	}
}

`

Sadly I don’t know what kind of grid you are using~ But the idea is when ever you instantiate a tower: you want to call a graph update scene on the area~

And on destroy, call a graph update scene again on the area~

and whenever you instantiate a tower, call CheckIfPathIsPossible from the start too the end of the map: If it returns false, destroy(this)

If you post your code, I can help further :slight_smile:

Hi,

I know how to achieve what I need, the problem is the function GraphUpdateUtilities.UpdateGraphsNoBlock() which doesn’t work as intended. If the function returns false, it must revert the changes made to the grid, but it doesn’t.

~ Documentation:
http://arongranberg.com/astar/docs_dev/class_pathfinding_1_1_graph_update_utilities.php
static bool UpdateGraphsNoBlock ( GraphUpdateObject guo, List< Node > nodes, bool alwaysRevert = false )

“This might return true for small areas even if there is no possible path if AstarPath.minAreaSize is greater than zero (0). So when using this, it is recommended to set AstarPath.minAreaSize to 0 (A* Inspector -> Settings -> Pathfinding)”

If this does not fix your problem, try IsPathPossible(Node n1, Node n2), and report back XD

But how do i change this minAreaSize to 0? Its not visible in the inspector