キーボードによる操作 (3/5)
作成:2014-09-06 10:38
更新:2014-09-06 10:38
更新:2014-09-06 10:38
■GetKeyDown/GetKeyUpの利用
Input.GeyKeyは、キーの状態をチェックするのに便利なメソッドです。が、これはキーを押したままだと、常にtrueと判断されます。「押している間、ずっと〇〇する」みたいな処理にはいいのですが、「〇〇を押したら××する」というような処理をしたいときは困ります。押している間、ずっと処理を実行し続けてしまいますから。
「キーを押したとき、離したとき」に一度だけ処理を実行させる、というような場合に用いられるのが、Inputの「GetKeyDown」「GetKeyUp」といったメソッドです。
・押した時だけtrueを返す
・離したときだけtrueを返す
使い方はGetKeyとほぼ同じです。引数にチェックしたいキーのKeyCodeを指定して呼び出します。これらのメソッドは、キーを押したり離した時に一度だけtrueを返し、以後はそのままキーを押したまま、離したままであってもfalseしか返しません。
では、これらを利用した例を下にあげておきましょう。Updateメソッドを書き換えて動かしてください。今回は、キーを押したときだけ移動し、押しっぱなしにしても動きません。キーを押すと、1回1回、ちょこっと動きます。先ほどのサンプルと動作の違いを確かめてみましょう。
「キーを押したとき、離したとき」に一度だけ処理を実行させる、というような場合に用いられるのが、Inputの「GetKeyDown」「GetKeyUp」といったメソッドです。
・押した時だけtrueを返す
Input.GetKeyDown( キーの指定 )
・離したときだけtrueを返す
Input.GetKeyUp( キーの指定 )
使い方はGetKeyとほぼ同じです。引数にチェックしたいキーのKeyCodeを指定して呼び出します。これらのメソッドは、キーを押したり離した時に一度だけtrueを返し、以後はそのままキーを押したまま、離したままであってもfalseしか返しません。
では、これらを利用した例を下にあげておきましょう。Updateメソッドを書き換えて動かしてください。今回は、キーを押したときだけ移動し、押しっぱなしにしても動きません。キーを押すと、1回1回、ちょこっと動きます。先ほどのサンプルと動作の違いを確かめてみましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
void Update () { if (Input.GetKeyDown(KeyCode.RightArrow)){ this.transform.Rotate(new Vector3(0, 0, -10f)); } if (Input.GetKeyDown(KeyCode.LeftArrow)){ this.transform.Rotate(new Vector3(0, 0, 10f)); } if (Input.GetKeyDown(KeyCode.UpArrow)){ this.transform.Translate(this.transform.up * 0.1f); } if (Input.GetKeyDown(KeyCode.DownArrow)){ this.transform.Translate(this.transform.up * -0.1f); } }
※関連コンテンツ