[RESOLU] Problème de code Rotation roues et angl

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
pcpunch
Messages : 23
Inscription : 22 Fév 2018 12:21

[RESOLU] Problème de code Rotation roues et angl

Message par pcpunch » 22 Fév 2018 12:35

Bonjour je cherche à faire une rotation de mes roues avant, jusque-là elle tourne bien sur elle-même en marche avant ou marche arrière ;

Code : Tout sélectionner

	void Update () {

        if(Input.GetKey(KeyCode.Space) || Input.GetKey(KeyCode.LeftAlt))
        {
            Vector3 dir = Vector3.zero;

            if(Input.GetKey(KeyCode.Space))
            {
                dir = Vector3.forward;
                Avg.transform.Rotate(Vector3.right * 200 * Time.deltaTime);
                Avd.transform.Rotate(Vector3.right * 200 * Time.deltaTime);
                Arg.transform.Rotate(Vector3.right * 200 * Time.deltaTime);
                Ard.transform.Rotate(Vector3.right * 200 * Time.deltaTime);
             
            }
            else
            {
                dir = -Vector3.forward;
                Avg.transform.Rotate(-Vector3.right * 200 * Time.deltaTime);
                Avd.transform.Rotate(-Vector3.right * 200 * Time.deltaTime);
                Arg.transform.Rotate(-Vector3.right * 200 * Time.deltaTime);
                Ard.transform.Rotate(-Vector3.right * 200 * Time.deltaTime);
               
            }

            transform.Translate(dir * speed * Time.deltaTime);
            transform.Rotate(Vector3.up * Mathf.Sign(dir.z) * cRotation * Input.GetAxis("Horizontal") * Time.deltaTime);
            
        }

        WheelAngle();        
    }
    
Ça se gâte quand j'utilise la méthode WhellAngle() dans l'update :

Code : Tout sélectionner

    void WheelAngle()
    {
        if (Input.GetAxisRaw("Horizontal") > 0)
        {
            Avg.transform.localRotation = Quaternion.Euler(Avg.transform.localEulerAngles.x, 30, 0);
            Avd.transform.localRotation = Quaternion.Euler(Avd.transform.localEulerAngles.x, 30,0);          

        }

        if (Input.GetAxisRaw("Horizontal") < 0 )
        {
            Avg.transform.localRotation = Quaternion.Euler(Avg.transform.localEulerAngles.x, -30, 0);
            Avd.transform.localRotation = Quaternion.Euler(Avd.transform.localEulerAngles.x, -30, 0);
        }

        if (Input.GetAxisRaw("Horizontal") == 0 )
        {
            Avg.transform.localRotation = Quaternion.Euler(Avg.transform.localEulerAngles.x, 0, 0);
            Avd.transform.localRotation = Quaternion.Euler(Avd.transform.localEulerAngles.x, 0, 0);
        }
    }
    
Pour l'angle en fonction de la direction c'est Ok, mais pour la rotation des roues sur elles-mêmes ça bloque au bout de 2 secs.

Je n'arrive pas a comprendre pourquoi ?
bien que cela vient trés certainement de mes Quaternion.Eulur et surtout comment opérer, si vous avez une piste ?

Merci :oops:

Ps: je n'utilise pas de whellcollider c'est voulu et impératif.
Dernière édition par pcpunch le 22 Fév 2018 13:33, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6216
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [MY-AL] Problème de code Rotation roues et angle

Message par boubouk50 » 22 Fév 2018 12:58

Tu devrais séparer les rotations. Ici, tu effectues des rotations séparément une fois avec Rotate () et l'autre en affectant directement le quaternion. C'est risqué quand on tâtonne.
Je te propose d'ajouter un Empty GameObject parent de chaque roue.
Ce parent vide sera chargé d'effectuer la rotation gauche et droite.
Les roues seront chargées d'effectuer la rotation avant arrière.
Ainsi, tu seras sur de ne pas avoir de conflit sur les rotations.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

pcpunch
Messages : 23
Inscription : 22 Fév 2018 12:21

Re: [MY-AL] Problème de code Rotation roues et angle

Message par pcpunch » 22 Fév 2018 13:30

Merci Boubouk :lol: :lol: :lol: :lol: çà fonctionne

C'est effectivement très logique :roll: et une solution très simple a mettre en oeuvre !

J'ai envie de dire "élementaire mon chér Watson !!!!"

Merci beaucoup pour ta réactivité !!! :merci: :merci:

Répondre

Revenir vers « (C#) CSharp »