Why are my entities passing through each others or through borders?

Main reasons for Entities crossing each others or crossing borders:

Motion Behavior + Navigation Behavior = FAIL

The Navigation Behavior influence the position of your character particle.

When playing a Motion Behavior, it will also directly influence the position of the character particle, hence breaking the navigation avoidance computer before.

Locomotion Behavior is designed to follow the position of the character particle without modifying it. Therefore to play a motion influence the character root node position while using a Navigation Behavior, you should always use Locomotion Behavior.

Note: if you want to play a motion e.g. only on the arms of your character (for example saying hello motion), then it is perfectly fine to use a Motion Behavior because it will not influence the character root position


Locomotion cannot follow Navigation

If you do not provide the right motions to the Locomotion Behavior, it may be unable to follow Navigation (e.g. Navigation speed is set to 5m/s and your Locomotion only has walk motions so it cannot go faster than 1.4 m/s). If this happen, your character may be very far from its particle and the avoidance broken.

See the Locomotion FAQ for full details


Entities have no Navigation Behavior running

Entities without a Navigation Behavior  will not be avoided by Entities with a Navigation Behavior

Two different entityTypes are passing through each others.

If two different entityTypes are passing through each others you should check if a Navigation Behavior is applied to all your entities.

With the Navigation Behavior applied on the two EntityTypes, both crowds are correctly avoiding each other.

To quickly check if your characters are playing a Navigation Behavior or not: Just click on one of your characters and look inside the Crowd Visual Feedback.