This post is a follow up of Splitting scanning into multiple frames?
First of all, I’ve read RVO Controller not walking stairs, but my heights are correctly set.
When using AIPath
+ RVOController
to drive a character in the latest version, the character does not move vertically to follow the terrain shape (neither up nor down, and does not even try to settle into graph height at intialization.
The graph is scanned correctly, the path is generated correctly (sticking to the right Y positions), but the agent ignores all that and is stuck at its initial Y position.
Demonstration:
Same thing, from Scene view:
Agent configuration:
Pathfinder configuration:
The exact same setup, but with CharacterController, works as expected, so my main suspicion is on AIPath
's handling of RVOController
. From what I can gather from the code, it seems to project everything to the movement plane and do its calculations from there. Specifically, the line
var rvoTarget = currentPosition + movementPlane.ToWorld(Vector2.ClampMagnitude(velocity2D, distanceToEnd), 0f);
looks like is what causes this behaviour (currentPosition.y
would always be the same, and the Y coord of the delta seems to be constant), but so far I haven’t found a solution for this.