sûrement une question un peu stupide, mais bon, les maths c'est pas mon fort x)
Grosso modo, j'ai un perso qui a une arme qui vise automatiquement sa cible (pointe en direction de l'ennemi le plus proche).
J'ai un peu galéré pour ce script et je crois que sans internet j'y serais pas arrivé :
Code : Tout sélectionner
var TargetVector = Target.transform.position - WeaponTest.transform.position;
var angle = Mathf.Atan2(TargetVector.y, TargetVector.x) * Mathf.Rad2Deg;
var myQuaternion = Quaternion.AngleAxis(angle, Vector3.forward);
var SpriteGameObjectRotation = Quaternion.Euler(180, 0, 0);
WeaponTest.transform.rotation = Quaternion.Slerp(WeaponTest.transform.rotation, myQuaternion, Time.deltaTime);
Quand mon joueur (gameObject parent de WeaponTest) se retourne (rotation de 180° sur l'axe y), la rotation de mon arme qui est globale se retourne pas sur cet axe.
Je sais pas trop quoi faire pour régler le problème, je me doute qu'il faut multiplier mon quaternion myQuaternion par un autre quaternion. Dans ce style là
Code : Tout sélectionner
var QuaternionReverse = Quaternion.Euler(180, 0, 0);
Mais c'est là que je me doute que la réponse risque d'être simple mais, comment j'obtiens cet angle sur mon joueur (ou mon arme) qui devrait être de 180° ou de 0° et comment je le transforme en Quaternion ?
Merci d'avance