0 votes
by
edited by

Hello, we are currently conducting an accident analysis simulation. I am applying the "VehicleController" component to two vehicles. The rigidbody mass value was set to over 1500kg for a sedan, and the speed was set to 50km/h.

However, when two cars collide, a phenomenon occurs where the car floats into the air. Is there a need to set additional physical values?

When we analyzed actual vehicle accidents, there was no phenomenon in which a vehicle traveling at low speeds flew into the air upon collision. If there is a solution in the game engine, please let me know.

1 Answer

0 votes
by
 
Best answer

Collisions are entirely driven by the underlying physics engine in Unity, which handles the collisions as non-deformable, purely inelastic, objects. Therefore, no energy from the collision is absorbed by the colliding objects. In this case, the entire collision energy is applied to both objects, which results in one of them being launched upwards.

The solution is using Unity's contact modification API for amending the contacts to reduce their energy. By subscribing to the API event, Unity reports each contact to the script before it's passed to the physics solver. Each contact pair can then be consulted and modified accordingly to a different kind of impact.

...