- Home /
Ignoring force of impact for rotation axis only
Hi,
I have a big rotating object (car) that is hit another that is the same size and mass.
At the moment when car 1 is hit by car 2, the impact of car 2 adds additional force to the rotation of car 1. This is causing car 1 to spin off.
How do I set it up so when car 2 hits car 1 it ignores the additional force applied on the rotation axis? I still want all other forces to apply (velocity, position, etc.) just not the rotation.
Locking the rotation does not help as then the cars cannot turn at all, and even if I set it up to lock the rotation just at the time of impact, the car could be turning a corner at the time and locking the rotation would cause it to crash in to a wall.
The car is setup with sphere colliders of wheels and a box collider for a body
Thanks.
Answer by robertbu · Apr 26, 2013 at 04:14 PM
Shot in the dark. Could you disable rotations in OnCollisionEnter() and re-enable them in OnCollisionExit()?
http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody-freezeRotation.html
Another possibility might be to drastically increase the angularDrag at the start of the collision and re-enable at the end...might be more realistic.
http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody-angularDrag.html
Thanks but, while those work when driving in a straight line, when it comes to the ai turning a corner freezing the rotation or increasing the angular drag at the time of impact almost allways means the car hasnt turned enough to be able to make it round the corner without crashing in to a wall.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Strange behavior with the Unity car? 0 Answers
Raycast align with ground normal 2 Answers