前提・実現したいこと
unityの2Dアクションゲーム開発でジャンプ動作まではできたのですが、
方向キー上を押し続けていると何度もジャンプしてしまう挙動になってしましました。
方向キー上を一度押したときに1回だけジャンプさせるにはどうすればいいでしょうか?
※プログラム初心者なので操作キー入力の変更方法もわかっていないです。。。
発生している問題・エラーメッセージ
方向キー上を押しつづけていると何度もジャンプを繰り返してしまう。
該当のソースコード
unity
1 //キー入力されたら行動する 2 float horizontalKey = Input.GetAxis("Horizontal"); 3 float verticalKey = Input.GetAxis("Vertical"); 4 float xSpeed = 0.0f; 5 float ySpeed = -gravity; 6 7 if (isGround) 8 { 9 if (verticalKey > 0) 10 { 11 ySpeed = jumpSpeed; 12 jumpPos = transform.position.y; //ジャンプした位置を記録する 13 isJump = true; 14 jumpTime = 0.0f; 15 } 16 else 17 { 18 isJump = false; 19 } 20 } 21 else if (isJump) 22 { 23 //上方向キーを押しているか 24 bool pushUpKey = verticalKey > 0; 25 //現在の高さが飛べる高さより下か 26 bool canHeight = jumpPos + jumpHeight > transform.position.y; 27 //ジャンプ時間が長くなりすぎてないか 28 bool canTime = jumpLimitTime > jumpTime; 29 30 if (pushUpKey && canHeight && canTime && !isHead) 31 { 32 ySpeed = jumpSpeed; 33 jumpTime += Time.deltaTime; 34 } 35 else 36 { 37 isJump = false; 38 jumpTime = 0.0f; 39 } 40 }
試したこと
キー入力方法を
if(Input.GetKeyDown("Jump"))
などに差し替える方法も試したのですが、
エラーがでてしまい、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/12 07:31
2020/07/12 12:03
2020/07/12 15:18