我已经开始了一个不需要鼠标的新游戏,因此将动作保持在键盘上。我尝试合并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);
}
}
3
切线:代码中的缩进有点混乱,因此起初我没有注意到,但是代码中的条件将阻止大多数代码运行。就像if(UpArrow)否则if(UpArrow && RightArrow)将永远不会运行'else'分支。
—
飞速前进