2017-08-16 2 views
0

Je fais une simulation de certains poissons dans un lac. J'utilise un corps rigide, sinon ils se déplacent sur les côtés. Mais quand ils frappent sur les côtés ils tournent et ensuite le script je dois mettre leur rotation à 0,0,0 quand ils partent échoue.Unité: Poisson à corps rigide quittant l'eau

Répondre

1

Votre problème peut être dû au fait que vous utilisez la physique de l'unité pour déplacer le poisson mais en essayant de régler la rotation directement. Dans ce cas, le mouvement et la rotation du poisson sont entraînés par la physique et les forces appliquées à l'objet. Mais vous pouvez toujours affecter la rotation et la position si vous réinitialisez toutes les forces. Essayez de chercher here pour apprendre à supprimer les forces.

De même, lorsque vous manipulez Physics in Unity, ne modifiez pas les méthodes Update() et FixedUpdate(), car cela peut conduire à un résultat incorrect.

1

Quand vous dites "frapper dans les côtés", voulez-vous dire les côtés du lac simulé?
Si c'est le cas, une option pourrait être de définir les objets qui désignent les côtés comme «cinématiques». Ensuite, vous pouvez détecter quand un objet de jeu (tel qu'un poisson) entre en collision avec lui mais cela ne provoquera aucune réaction physique. (ref: RigidBody)