Search Issue Tracker
Won't Fix
Votes
1
Found in
2017.4.0f1
2018.3.0a1
2018.3.3f1
2019.1.0a1
2019.2.0a1
Issue ID
1122030
Regression
No
Nav Mesh Agent's Speed increases past the Speed set when traveling down a slope and having a direct path to the Target
How to reproduce:
1. Open the user-submitted project ("bug-navagent-slope-speed.zip")
2. Open the "SampleScene" and enter Play Mode
3. Observe the Console Window as the Nav Mesh Agent travels down the Slope
Expected result: The Nav Mesh Agent's speed is at around ~3.5 units
Actual result: The Nav Mesh Agent's speed increases to around ~4.3 units when the Agent's target is in the direct path to the slope
Reproduced in: 2019.2.0a3, 2019.1.0b2, 2018.3.4f1, 2017.4.19f1
Note: Moving the target slightly to the left or right of the slope, to make it into an indirect path, reduces the Speed back to its expected value.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Rendering locks up when not looking at a transparent material on Meta Quest 2
- Volumetrics break when using a Custom Pass to create a Thickness Buffer for Alpha Clipping
- All tests are run instead of only the failed ones when the "Rerun Failed" button is pressed
- GameObject is not masked when the "Render PostProcessing Effects" pass executes with a resolved non-MSAA Color target and MSAA DepthStencil target
- [Android] Gfx.WaitForGfxCommandsFromMainThread high performance usage and inconsistency when built Player scene has Canvas GameObject on a specific Project
Resolution Note:
The problem occurs when the line segment connecting the agent's current position and the next path corner is at a large height difference from the NavMesh at the position where the agent will move next. The agent's desired velocity vector is computed along the exact direction towards the next corner. Even though that velocity vector is limited in size correctly by the _speed_ parameter chosen by the user, its magnitude changes when the vector projects onto the NavMesh during the actual movement, thus producing a different actual speed of the agent.
No solution will be provided for this behavior due to a planned reorganization of the code in that area.
One way to possibly avoid this issue is to detect when the preconditions happen and break the movement operation into smaller sections that target intermediate points towards the next corner.