私はマウスを必要としない新しいゲームを始めたので、動きはキーボードに任せています。私は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)else if(UpArrow && RightArrow)は「else」ブランチを実行しません。
—
ジョッキング14