EDIT: Added that this only applies to NavMeshObstacles that have rigidbodies active on them or one of their ancestors.
The “Move Threshold” setting on NavMeshObstacle is broken for objects with active rigidbodies; it doesn’t appear to have any effect at all on when a carving obstacle updates the NavMesh.
According to the documentation:
and
However, we find that our obstacle (set to carve) will constantly update the mesh, every frame, regardless of how much it has moved and regardless of the “Move Threshold” setting. We got our team updated to 4.3.4 and it is still broken. Not being able to prevent it from recalculating the navmesh every frame without giving up the ability to carve at all is really breaking our game. The performance hit for recalculating the mesh carving (with a single obstacle) every frame drops our FPS to less than half, bringing us down into the noticeably choppy range.
We were going to write a little script that controlled it manually, based on movement, but quickly realized there didn’t appear to be any way to prevent the update without disabling the carving (which immediately fills in the hole in the navmesh) so that solution was dead before it was even started. Has anyone managed to find a hack or workaround to achieve what carvingMoveThreshold is supposed to do? I’m assuming Unity will fix this in the next update (if not, we’re screwed), but it would be nice to have a hack or workaround so we can get on with some testing in the meantime.