I am using version 3.6 Pro, with default settings for “RVOSimulator” and out of the box RVO Agent. (A few lines of code were created to allow each agent to have an independent target.)
The A* RecastGraph settings are default from “Example11_RVO RVO scene”.
Unity 3D version is 4.3 Pro.
The white agents are locked. And they must remain locked. They already reached the destination reserved for them.
The white agents can not be pushed away in order for the red agent to reach it`s location. This is mandatory.
The red agent stops moving after a couple of seconds.
(Last 2 days i tried different settings for RVO Simulator, RecastGraph and RVO Agent, but no solution that can actual be used in a real project was found).
RVO is a local avoidance algorithm. The thing about local avoidance is that it can only avoid convex obstacles (or close to convex obstacles). It cannot for example find a path around an obstacle.
The white agents can not be pushed away in order for the red agent to reach it`s location. This is mandatory.
This is kinda against the core principle of RVO, for it to work well, agents have to cooperate, so they should be able to move away so that other agents can pass.
RVO stands for Reciprocal Velocity Obstacles, the "reciprocal" here is about agents cooperating.
I really need an answer to this basic question.
Does Local Avoidance work in version 3.6 Pro without pushing other agents around?
If the obstacles that the other agents form are non-convex, no.
There is nothing out of the box that can detect that.
You could have some luck using for example a raycast to detect how many agents there are between this agent and the target. And if there are too many you use some other behaviour.
The RTS example in the current beta (the example in itself is also very much in beta, it is quite undocumented) has some additional functionality for this. When RVOController components become locked the other agents will move around them more efficiently (most of the time anyway).