Unityの2Dゲームで、プレイヤーを左右移動させるために
以下のスクリプトを作ったのですが、
時々、キーボードを離してもプレイヤーがそのまま動き続けてしまうことがあります。
//speedは6、rb2dはPlayerのものに設定しました。 void Update() { float horizontal = Input.GetAxisRaw("Horizontal"); rb2d.velocity = new Vector2(horizontal * speed, rb2d.velocity.y); }
###試したこと
Debug.Log(horizontal)
を追加してhorizontal
の値を確認しました。
すると、キーボードを離してるのにも関わらず、
horizontal
の値が「0」に戻っていない時があることに気づきました。
Leftキーを離したのに値がずっと「-1」になっているので、
プレイヤーが継続的に左に動き続ける、という挙動をしてしまったのです。
###環境
MacBookAir M1チップ
Unity 2.7f
なぜInput.GetAxisRawの値が更新されないことがあるのでしょうか。
Unityに詳しい方、ご教授お願いします。
あなたの回答
tips
プレビュー