Dynamic Character Controller

I am using Unity 5.1.1 and therefore I can’t tell which PhysX version it is based on. It should be at least the PhysX 3.3.x SDK and I am currently working under Windows.

I am controlling a rigidbody capsule by directly setting its velocity which basically looks like this:

rigidbody.AddForce(desiredVelocity - rigidbody.velocity, ForceMode.VelocityChange);

This is the result in my current project:


The player is stronger than the car! To solve my problem I think I need to change rigidbody.velocity to rigidbody.velocity - (velocity caused by collisions) but I really don’t know how to do that. Does PhysX supply some functions to determine external forces or velocities?

Do you have any ideas or suggestions?

Note: I know about the advantages of a kinematic character controller versus a dynamic one.