Comencé un nuevo juego que no requiere mouse, dejando así el movimiento hasta el teclado. He intentado incorporar 8 direcciones; arriba, izquierda, derecha, arriba-derecha, etc. Sin embargo, cuando presiono más de una tecla de flecha, la velocidad de movimiento se acumula ( http://gfycat.com/CircularBewitchedBarebirdbat ). ¿Cómo podría contrarrestar esto?
Aquí está la parte relevante de mi código:
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);
}
}