J'ai un volant d'un véhicule que j'ai paramétré pour qu'il tourne sur son axe Z selon si on appuie sur les flèches droite et gauche du clavier, et qui se remet a son état d'origine quand on appuie plus sur les touches (GetKeyUp).
Voici mon code jusqu'à présent:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Volant : MonoBehaviour {
public float speed;
void Start()
{
}
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
transform.Rotate(Vector3.forward * speed * Time.deltaTime);
else if (Input.GetKeyUp(KeyCode.LeftArrow))
transform.localRotation = Quaternion.Euler(0, -25, 90);
if (Input.GetKey(KeyCode.RightArrow))
transform.Rotate(-Vector3.forward * speed * Time.deltaTime);
else if (Input.GetKeyUp(KeyCode.RightArrow))
transform.localRotation = Quaternion.Euler(0, -25, 90);
}
}
Sauf que quand je n'appuie plus sur les touches, mon volant se remet directement dans sa position initiale, sans transition (logique vu le code). Hors, je voudrais qu'on le voit tourner jusqu'à revenir dans son orientation d'origine (comme un vrai volant en fait).
J'essaie d'utiliser quaternion.identity (pour définir les valeurs de rotations initiale de mon volant), ou un quelconque moyen d'utiliser ma variable speed pour faire tourner mon volant quand je retire mon doigt du mon clavier, mais rien n'y fait.... Un petit coup de main serait le bienvenue
Attention à la section où vous postez.
et Les balises code SVP
Merci de lire la Netiquette.