Question on Cutting Navmesh inside another NavmeshCut Object

-UPDATE- I actually ‘sort of’ got this working, but it seems that nodes can only have 1 tag, so trying to give them multiple tags just creates more issues…

Hello everyone, I’m wondering if there is a way to enable / allow a object with a NammeshCut script to cut while inside a
larger area object that also has a NavmeshCut script.

The Goal:
Much like using a GUS script to mark off areas in a grid graph (for walk-able / tag purposes), I’m trying to get the same effect on a nav mesh. However, since triangles are either ‘on or off’, just using a GUS by itself can be very inaccurate.
So, my plan was to create a ‘area polygon’ mesh, use that to cut the nav mesh and then feed the mesh points to a GUS which is now very accurate because of the cutting.

This did work…until I realized that I cannot have 1 area overlapping another, because only the largest area will get cut (even with isDual), resulting in the largest area being accurate but all smaller areas being inaccurate again. And doing something like putting 2 buffer zones around a rock for example (one for small agents, one for large agents) won’t work because the cutting only applies to that larger area.

I’m wondering if there is a way to allow these cutters to cut inside each other (or do something that achieves the same goal). Any ideas are appreciated, thank you for reading.


That is not possible out of the box. However… I am not sure if this will work, but if you open up the TileHandler.cs script and go to line 655 (roughly, and yes I know that script is absolutely horrible, I really need to clean it up) you will find this line

clipper.Execute(ClipType.ctDifference, sol, PolyFillType.pftEvenOdd, PolyFillType.pftNonZero);

if you change that to

clipper.Execute(ClipType.ctDifference, sol, PolyFillType.pftEvenOdd, PolyFillType.pftEvenOdd);

That might do what you want. I haven’t tested it so I am not sure.