Page 2 sur 2

Re: [DB] les forces induites après collision

Publié : 06 Jan 2019 14:59
par Max
Yugo a écrit :
06 Jan 2019 12:49
il me faudrait une formule pour une variable forceImpact...
Tu cherches bien compliqué pour un début je trouve ;)
Ceci dit, regarde du coté des Physic Material, cela te fournira un début de piste.

Re: [DB] les forces induites après collision

Publié : 07 Jan 2019 15:15
par Yugo
La difficulté ne me fait pas peur et puis... il y a une communauté toujours près à aider...c'est cool!

J'ai trouvé une formule dérivée de celle le énergie cinétique que je mets au cas où ça intersecterait quelqu'un.

forceInpact = 0.5f * rb.mass * Mathf.Pow(rb.velocity.magnitude, 2); //(rb = RigidBody du vaisseau)

Selon la valeur de forceImpact je décide que rien ne se passe ou je déclenche une perte de contrôle ou je détruis le vaisseaux.

Re: [DB] les forces induites après collision

Publié : 07 Jan 2019 19:42
par Yugo
voici le script pour réduire les Forces après collision.
Les forces de mouvement sont dans un Vector3 : RB.velocity
Les forces de rotation sont dans un Vector3 : RB.angularVelocity
Lors d'une collision on mets le bool contrainteOn = true

Code : Tout sélectionner

    public Vector3 contrainteVelocity;
    public Vector3 contrainteAngle;
    
if (contrainteOn)
    {
      contrainteVelocity = Vector3.Lerp(contrainteVelocity,Vector3.zero , 0.005f);
      contrainteAngle = Vector3.Lerp(contrainteAngle, Vector3.zero, 0.005f);
      RB.velocity = contrainteVelocity;          
      RB.angularVelocity = contrainteAngle;
      if (RB.velocity == Vector3.zero && RB.angularVelocity == Vector3.zero) { vaissInfo.contrainteOn = false; }
     }