Support Forum

GraphUpdateObject reset when Recast graph changed, how to monitor it?

Hi,
I set the tag of recast graph nodes, with resetPenaltyOnPhysics=false, but they will return to 0 while any node of whole map changed.
Is there any way to keep changes of tags on map, or can I monitor the graph changes and set tags again just after it changed? (IsAnyWorkItemInProgress and IsAnyGraphUpdateInProgress are always toggling even if no NavmeshCut active)
thanks!

here is the change code

GraphUpdateObject guo = new GraphUpdateObject(bounds);
guo.resetPenaltyOnPhysics = false;
guo.updatePhysics = false;
guo.modifyTag = true;
guo.setTag = tag;
AstarPath.active.UpdateGraphs(guo);

Hi

Navmesh cuts will always reset the tags of any nodes they change because it is fundamentally impossible to keep them when the geometry of the graph changes. You can subclass a navmesh cut and override the UsedForCut method. It will be called whenever that cut is used to update the graph.

THANK YOU!

It’s a very useful novel resolution for me. I’m trying it now!