コードの型
特定のキーが押された「タイミング」を捉えて処理を実行します。
C#
void Update()
{
// スペースキーが押された「瞬間」に実行
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("ジャンプ!");
}
}
コードの仕組み
GetKeyDown は、フレーム(1秒間に何度も繰り返される処理)の間で「前回のフレームでは押されていなかったのに、今回のフレームで押されている」という「変化の瞬間」を検知します。
- 「押している間」ではない: キーを押し続けても、実行されるのは「押した瞬間の1回だけ」です。
- メリット: ジャンプや攻撃ボタンなど、「1回押したら1回だけアクションをする」処理に最適です。
活用例
攻撃やジャンプ、メニューを開くなど、「ボタンを連打したくない処理」に使います。
C#
void Update()
{
// 弾を発射する(押しっぱなしを防ぐ)
if (Input.GetKeyDown(KeyCode.Z))
{
FireBullet(); // 弾を出す関数
}
}
その他(実用的なテクニック)
- 他の「入力系」命令との違い:
GetKeyDown: 押した瞬間だけ(ジャンプ、決定ボタンなど)GetKey: 押している間ずっと(移動、アクセルなど)GetKeyUp: 離した瞬間だけ(溜め攻撃のリリースなど)
- KeyCodeの使い方:
KeyCode.Spaceの他にも、KeyCode.LeftArrow(左矢印)やKeyCode.Aなど、ほとんどのキーに対応しています。 - スマホ操作への対応: もしスマホの画面タップに置き換えたい場合は、
GetKeyDownの代わりにInput.GetMouseButtonDown(0)を使うと、PCクリックとスマホタップの両方に対応できます。
初心者向けまとめ
GetKeyDown は、「ボタンを叩いた『その一瞬』を見逃さないセンサー」です。
Updateは毎秒何十回もループしていますが、GetKeyDownを使えば「何回ループしても、ボタンを離すまでは無視!」という処理が簡単に作れます。

コメント