[RESOLU][DB-AL] Valeur rotation

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
ziropo
Messages : 52
Inscription : 19 Fév 2016 16:45

[RESOLU][DB-AL] Valeur rotation

Message par ziropo » 23 Oct 2017 18:49

Bonjour,

J'aimerai récupérer la valeur de la rotation sur l'axe X d'un objet qui est par défaut à 270.
Mon problème, c'est que si je fais une rotation dans un sens ou dans l'autre, transform.eulerAngles me retourne toujours + de 270. Donc pour savoir si je fais une rotation dans un sens dans l'autre, ça ne m'aide pas.

Est-ce que quelqu'un a une idée ?

Merci d'avance.
Dernière édition par ziropo le 29 Oct 2017 13:24, édité 2 fois.

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

Re: Valeur rotation

Message par boubouk50 » 25 Oct 2017 09:19

C'est une question de code, non?
C# ou Js ? -> C'est pour changer le sujet de section.

Comment récupères-tu la valeur de l'axe X? Est-ce la rotation locale ou globale?
"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

ziropo
Messages : 52
Inscription : 19 Fév 2016 16:45

Re: Valeur rotation

Message par ziropo » 25 Oct 2017 17:06

Oui effectivement, c'est plus du code :]

J'utilise du JS.

C'est un script sur l'objet. Je voulais tester la valeur avec un print :

Code : Tout sélectionner

print(transform.eulerAngles);
J'ai essayé de prendre la rotation locale avec :

Code : Tout sélectionner

print(transform.localEulerAngles);
mais le résultat est exactement le même.

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

Re: Valeur rotation

Message par boubouk50 » 25 Oct 2017 17:35

Tel quel, ce n’est pas possible, les angles d'Euler sont calculés à partir des quaternions et ne sont pas linéaires pour le coup car il existe plusieurs rotations possibles sur 3 axes pour arriver au même résultat.
Il te faut donc calculer l'angle par rapport à une rotation originelle. En gros, tu as ton objet actuel et un objet référence, la rotation en X sera l'angle généré entre ses deux objets en X.
"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

ziropo
Messages : 52
Inscription : 19 Fév 2016 16:45

Re: Valeur rotation

Message par ziropo » 29 Oct 2017 13:22

Je suis parvenu à faire ce que je voulais. Vu que j'utilise la souris pour faire une rotation. J'ai utilisé ce code :

Code : Tout sélectionner

 		if(Input.GetAxis("Mouse Y") > 0){...}
 			
 		if(Input.GetAxis("Mouse Y") < 0){...}
 			
Comme ça j'augmente ou diminue de la différence de l'angle de départ.

Merci pour tes éclaircissements.

Verrouillé

Revenir vers « (Js) Javascript »