Unity C# よく使うボタン押す系の関数のまとめ
おはようございます。まえぴーです。
Unityで3Dオブジェクト(キャラクター)をボタンで、左右に動かしたりジャンプさせたりすることはよくあることです。
私自身が初学者なので、基本的でよく使う3つのGetKey系の関数をまとめました。
Input.GetKey関数
「ユーザーが、文字列で定義されたキー(キーボード上のボタン)を押し続けているときに、trueで返す」という関数です。
例えば、
Input.GetKey("left")
と書いたとすると、押している間ずっと左に移動します。
ただし、たいてい移動できる範囲を条件づけますので、
if文の中に、
(Input.GetKey("left") [ボタンを押していて]&&[なおかつ] -this.movableRange [移動できる範囲]< this.transform.position.x(このメンバ変数のポジションX))
という感じに記載することが多いです。
(Input.GetKey("right") && this.movableRange > this.transform.position.x )
右ボタンも同じように記載します。
Input.GetKeyDown関数
nameによって識別されるキー(例えば、Space,UpArrow,DownArrow、BackSpaceなどなど)を押してフレームの間だけtrueを返します。
「ユーザーがキーを押す直前までは、trueを返さない。つまり、押したら、trueになる」となります。
例えば、if文の中に以下のように
Input.GetKeyDown(KeyCode.Space) && this.transform.position.y < 0.5f
スペースキーを押していて、なおかつこのメンバ変数のポジションyが0.5fより小さいとき(ジャンプして3Dキャラクターが浮いていないとき)と記載します。
Input.GetKeyUp関数
nameによって識別されるキーを話したフレームの間だけtrueを返します。
つまり、キーを押していないときにtrueになって、押すとfalseになります。
上記のGetKeyDownと使い方はほとんど同じです。
Unityのドキュメンテーションから、識別されるキーの種類がたくさん紹介されているので、参考までに。
https://docs.unity3d.com/ja/2019.1/ScriptReference/KeyCode.html