RichAI is setup on a prefab which we have to manage manually because the game is networked, hence the updates must be tick-aligned and happen in their own function that isn’t the native Unity
For the “Start” script, I initialize RichAI
agent.Teleport(nt.transform.position); agent.updatePosition = false; agent.updateRotation = false; agent.canMove = false; agent.acceleration = 4;
(Any time you see
nt just read as “Networked Transform”)
Then in the network “Update” function:
agent.MovementUpdate(Runner.DeltaTime, out var nextPosition, out var nextRotation); nt.transform.position = nextPosition; nt.transform.rotation = nextRotation; agent.FinalizeMovement(nextPosition, nextRotation);
this all works great but it all goes to hell as soon as I add an RVOController.
What I actually want is just the local avoidance so that these characters path around each other gracefully. But just by adding the RVOController to the same model has this RichAI logic, suddenly it doesn’t understand how to path correctly:
You can’t see the cursor but suffice it to say those circles that appear on the ground are where the movement is being targeted.
The character suddenly gets stuck on everything and has a really difficult time with pathing. Without the RVOController, the character navigates perfectly fine just without the local avoidance.
I tried looking at this example: A* Pathfinding Project: Custom Local Avoidance Movement Script
and also reviewed the source of the RVOController class, but I don’t see anything directly demonstrating how to use RVOController (or at least any kind of local avoidance) with custom RichAI handling.