Я запустил новую игру, которая не требует мыши, оставляя движение до клавиатуры. Я попытался включить 8 направлений; вверх, влево, вправо, вверх-вправо и так далее. Однако, когда я нажимаю более одной клавиши со стрелкой, скорость движения увеличивается ( http://gfycat.com/CircularBewitchedBarebirdbat ). Как я мог противодействовать этому?
Вот соответствующая часть моего кода:
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);
}
}