2015年06月27日

引き続き、Input.anyKeyの検証


さて先日から、UnityのInput系統の動作検証をつづけておりマス。

先日の段階でですね…

このスクリプトって無理くさい?(;・∀・) という結論に達したのですが、
頭の体操がてら、実装できないもんかな? とちょっと考えてみました。

そういうわけでちょっと調べてみたところ、『Input.anyKey』という関数を発見。
公式リファレンスはこちらです。

なるほど。これをうまい具合に使ってあげれば、
最初のスクリプトも再現できるんじゃね? と思いまして。

そう思って、先日のコードのInput.GetKeyDownのところに、
以下のように手を加えてみました。

要はInput.anyKeyでキーが押されてるかどうかを取得。
押された時は、押されたキーが正解のキーかどうかを確認する…という算段です。
これで走らせてみたところ……

01
こんな感じで、正解のキーを押しても不正解の判定が出ます。
うーん…この『Input.anyKey』という関数は、
どうやら『押している間はtrueを返し続ける』という機能なようですね。

ならばということで、さらに手を加えたコードがこちら。
色々と手を加えているので、コード全体を載せます

これで走らせてみたところ、以下の様な結果になりました。
02
うん。いい感じですね。上々です。
キチンと正解のキーの時は正解判定だけ、
不正解の時は不正解のときだけ…て反応でした。

コードのキモは、前のフレームの時のキーの状況を保存しておいて、
『前のフレームではキーは押されてない&今のフレームではキーが押されてる』
という場合のみに反応するようにしてあることです。

これを使えば不正解の反応も出来るので、
例えば『正解の時はピンポン!! 不正解の時はブッブー!! て音を鳴らす』
て感じの機能を持たせることも出来ますね~。

なんて上機嫌で構えてたら、コード補完機能で、こんなのを見つけました。
03
……(´・ω・`)
しかもInputの公式リファレンスには、
『Input.anyKey』のすぐ下に『Input.anyKeyDown』ありますね…
なんで気が付かなかったのか…(´・ω・`)

一応ですね…この『Input.anyKeyDown』を使えば、
以下のように、最初のコードのままでもOKです。

うーん…なんという無駄な努力……(´・ω・`)
まぁ、頭の体操をしたと自分に言い聞かせておきます……(´・ω・`)


コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)