Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Unity 2D] Vitesse maximum d'un objet

Objet accélère indéfiniment

    19 septembre 2017 à 16:02:01

    Bonjour à tous,

    Je débute dans le développement Unity et je fais quelques tests afin de me familiariser avec le moteur physique.

    Je me retrouve confronté au problème suivant :

    Lorsque j'applique une force constante à un objet, l'objet accélère indéfiniment.

    En terme de code ça donne quelque chose du genre :

    void update() {
       ridigBody2d.AddForce(new Vector2(0, 10));
    }

    Je m'attendais à ce que l'objet auquel j'applique une force constante (ici, un vecteur (0, 10) à chaque frame) atteigne une vitesse maximale, mais non, sa "Velocity" ne fait qu'augmenter...

    Est-ce un comportement normal dans Unity ? Est-ce que j'utilise correctement la méthode AddForce ? (Est-ce que je dois réviser mes notions de physique ? :/ )

    Merci d'avance pour vos réponses !

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 septembre 2017 à 11:58:26

      Salut,

      Une force peut être comparée à une accélération, donc si tu donnes à ton objet une accélération constante, c'est normal que sa vitesse continue d'augmenter. Il n'y a strictement aucune raison que la vitesse soit bornée, et c'est parfaitement normal.

      Ce que tu peux faire, c'est rajouter une condition du genre : if (Vector2.magnitude (rigidbody.velocity) < vitesse_max)

      Et puis sinon, il me semble que c'est mieux de mettre la physique dans fixedUpdate et non dans Update, parce que Update ne s'exécute pas à une fréquence fixe, alors que fixedUpdate s'exécute à intervalles réguliers.

      Tchüs,

      Ryl

      -
      Edité par Anonyme 20 septembre 2017 à 12:00:44

      • Partager sur Facebook
      • Partager sur Twitter

      [Unity 2D] Vitesse maximum d'un objet

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown