Reproduction steps:
1. Open the attached "NavRefreshProblem.zip" project
2. Open the "SampleScene" Scene
3. Enter the Play mode
4. Click the "SwitchMovement" button in The Game view or manually move the "Unrelated" GameObject around the scene
5. Observe the Console Logs thrown when the NavMesh is modified
Expected results: Moving an unrelated GameObject does not affect the NavMesh in any way, and no polygon changes are logged
Actual results: Unrelated GameObject movement triggers a complete NavMesh recalculation and polygons have new IDs
Reproducible with: 2021.3.34f1, 2022.3.19f1, 2023.2.9f1, 2023.3.0a4
Not reproducible with: 2023.3.0b6
Fixed in: 2023.3.0a5
Reproducible on: Windows 11
Not reproducible on: no other environment tested
Notes:
- Setting the Time Scale to a high value (like 50) greatly increases the occurrence of the issue.
- Disabling (or enabling) the GameObject causes the issue too, but once disabled (or deleted), the issue no longer happens when moving the GameObject.
- Disabling all layer physics interactions or setting colliders to trigger does not affect the outcome.
- Only a NavMesh update triggers this behavior, when trying to debug this UpdateNavMesh is called all the time (as soon as one async call ends, we call it again).
- The resulting NavMesh once rebuilt is identical to the previous one in shape, but all the Nav polygons are new and have a different ID.