Support Forum

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

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)

here is the change code

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


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.


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