Bonjour et merci de la réponse cela fonctionne à merveille
voici le code : le lien pour le teste :
https://stiou62.itch.io/alstar-game?sec ... l72i6utov4
Code : Tout sélectionner
void Update()
{
// mise en place des axes de direction
float horizontal = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
float vertical = Input.GetAxis("Vertical") * speed * Time.deltaTime ;
// calcule de l'angle avec (tan) transformation de l'angle en radian
float angle = Mathf.Atan2(horizontal, vertical) * Mathf.Rad2Deg;
if (horizontal != 0 || vertical != 0)
{
// transformation de l'angle du sprite
transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, -angle);
}
// mouvement par pixel de l'objet vide
translate_targ.Translate (horizontal,vertical,0);
}
Merci encore à toi par contre serais-tu comment je peux smooth la rotation je pense utiliser Quaternion.Lerp ?
[Edit] j'ai peu êtres trouvé ma solution dites moi si je me trompe :
voici le teste :
https://stiou62.itch.io/spaceproje?secr ... lSJHfaBSL8
Code : Tout sélectionner
void Update()
{
// mise en place des axes de direction
float horizontal = -Input.GetAxis("Horizontal") * speed * Time.deltaTime;
float vertical = Input.GetAxis("Vertical") * speed * Time.deltaTime;
// calcule de l'angle avec (tan) transformation de l'angle en radian
float angle = Mathf.Atan2(horizontal, vertical) * Mathf.Rad2Deg;
if (horizontal != 0 || vertical != 0)
{
// transformation de l'angle du sprite
/*
transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, -angle);
rotationTarget.rotation = Quaternion.Euler(new Vector3(0, 0, angle));
*/
//transformation de angle en quaternion
player_rot = Quaternion.Euler (rotationTarget.rotation.x, rotationTarget.rotation.y, angle);
// utilisation de lerp pour smooth la rotation de mon personnage
rotationTarget.rotation = Quaternion.Lerp(rotationTarget.rotation, player_rot, speed_rot * Time.deltaTime);
}
// mouvement par pixel de l'objet vide
translate_targ.Translate(-horizontal, vertical, 0);
}