[RESOLU] Problème de code Rotation roues et angl
Publié : 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 ;
Ça se gâte quand j'utilise la méthode WhellAngle() dans l'update :
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
Ps: je n'utilise pas de whellcollider c'est voulu et impératif.
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();
}
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);
}
}
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
Ps: je n'utilise pas de whellcollider c'est voulu et impératif.