Rozpocząłem nową grę, która nie wymaga myszy, pozostawiając ruch do klawiatury. Próbowałem włączyć 8 kierunków; w górę, w lewo, w prawo, w górę w prawo i tak dalej. Jednak po naciśnięciu więcej niż jednego klawisza strzałki prędkość ruchu kumuluje się ( http://gfycat.com/CircularBewitchedBarebirdbat ). Jak mogę temu przeciwdziałać?
Oto odpowiednia część mojego kodu:
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);
}
}