Je me demandais comment agir sur les forces induites par une collision entre 2 Rigidbody.
J'ai un vaisseau spatial qui entre en collision avec un astéroïde. Avec des masses corrects les forces de collisions sont réalistes.
Le problème est que je n'arrive pas à reprendre le contrôle du vaisseau après et mon vaisseau tremblote lorsque je lui applique des rotations ou mouvements avec les commandes.
J'utilise addTorque pour les rotations et velocity pour les mouvements.
Je pensais en utilisant cela pouvoir annuler les forces de collision en allant à l'encontre de celle ci grâce au commande du vaisseau mais j'ai l'impression que rien ne les réduit ou les arrête.
Pour l'instant je n'ai trouvez qu'une solution bidouille en appliquant un RigidbodyConstraints.FreezeAll et RigidbodyConstraints.None à la frame suivante mais ça coupe tout d'un coup...pas top.
Comment faire pour arrêter progressivement les forces induites des collisions?
Code : Tout sélectionner
if (Input.GetKey(KeyCode.Z))
{
vaisseauMere.transform.GetComponent<Rigidbody>().velocity += new Vector3(0, 0, 1);
}
if (Input.GetKey(KeyCode.S))
{
vaisseauMere.transform.GetComponent<Rigidbody>().velocity += new Vector3(0, 0, -1);
}
if (( Input.GetAxis("Mouse X") != 0 | Input.GetAxis("Mouse Y") != 0 )
{
vaisseauMere.transform.GetComponent<Rigidbody>().AddTorque(vaisseauMere.transform.up * Input.GetAxis("Mouse X"), ForceMode.Acceleration );
vaisseauMere.transform.GetComponent<Rigidbody>().AddTorque(vaisseauMere.transform.right * -Input.GetAxis("Mouse Y"), ForceMode.Acceleration);