I’m trying to make the switch from a CharacterController to the RVOController on my characters. It’s supposed to be a drop-in replacement, except I’m having trouble with it.
My characters navigate obstacles enroute to their destination, but they no longer stop at their destination position like they used to. When I had the CharacterController attached they would stop at the destination, according to the Rich AI “End Reached Distance” variable. Now, they just keep sailing along, passing through obstacles they’re supposed to path-find around.
Any clues on what I’m doing wrong here? Do i need to add code to my character’s scripting to stop the movement manually?
I can make a video. It’ll need to wait until I’m home from work.
The documentation for RVOController mentions that the desired velocity stay stays the same until something else is requested:
“desired velocity is set in the Move function and is assumed to stay the same until something else is requested (as opposed to reset every frame).”
Would this affect the character movement in the way I’m experiencing?
I thought so first, but then I checked the code for RichAI and it correctly calls Move(Vector3.zero) when it has reached the target.
So the RichAI class is calling the method Move() in the RVOController class? I will take a look at the code. It’s possible my files are out of date.
I should have probably mentioned that I’m using a extension to RichAI called RichAIAgent. It comes with the Behavior Designer. I’m asking them about the problem.
RichAIAgent overrides OnTargetReached() but it doesn’t call:
“rvoController.Move(Vector3.zero)”