J'ai commencé un nouveau jeu qui ne nécessite pas de souris, laissant ainsi le mouvement au clavier. J'ai essayé d'incorporer 8 directions; haut, gauche, droite, haut-droite et ainsi de suite. Cependant, lorsque j'appuie sur plusieurs touches fléchées, la vitesse de déplacement se cumule ( http://gfycat.com/CircularBewitchedBarebirdbat ). Comment pourrais-je contrer cela?
Voici la partie pertinente de mon code:
var speed : int = 5;
function Update () {
if (Input.GetKey(KeyCode.UpArrow)) {
transform.Translate(Vector3.forward * speed * Time.deltaTime);
} else if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.RightArrow)) {
transform.Translate(Vector3.forward * speed * Time.deltaTime);
} else if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.LeftArrow)) {
transform.rotation = Quaternion.AngleAxis(315, Vector3.up);
}
if (Input.GetKey(KeyCode.DownArrow)) {
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
}