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
- Articulation Body with 'Revolute' Joint Type has erratic behavior when Upper Limit is set to above 360
- WebGL Player fails to render Scene when Terrain with Detail Mesh is added and WebGPU Graphics API is used
- Inconsistent errors are logged when different types are passed into the Query "Q<>" method in UIToolkit and the ancestor VisualElement is null
- Crash on GetMaterialPropertyByIndex when opening a specific Scene
- Discrepancies in the styling are present when using a TSS file instead of a USS file in custom EditorWindow
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.