Page 1 sur 1

[RESOLU][DB-AL] Valeur rotation

Publié : 23 Oct 2017 18:49
par ziropo
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.

Re: Valeur rotation

Publié : 25 Oct 2017 09:19
par boubouk50
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?

Re: Valeur rotation

Publié : 25 Oct 2017 17:06
par ziropo
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.

Re: Valeur rotation

Publié : 25 Oct 2017 17:35
par boubouk50
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.

Re: Valeur rotation

Publié : 29 Oct 2017 13:22
par ziropo
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.