世の中をより一歩知る自己牧会ブログ

OUTPUT用のブログです。今を強く生き抜くために必要なことを分野問わず共有したいと思っています。

Unity C# よく使うボタン押す系の関数のまとめ

おはようございます。まえぴーです。

Unityで3Dオブジェクト(キャラクター)をボタンで、左右に動かしたりジャンプさせたりすることはよくあることです。

私自身が初学者なので、基本的でよく使う3つのGetKey系の関数をまとめました。

Input.GetKey関数

f:id:defour:20190711074207p:plain

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関数

f:id:defour:20190711074231p:plain

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関数 

f:id:defour:20190711074408p:plain

GetKeyUp関数

 nameによって識別されるキーを話したフレームの間だけtrueを返します。

つまり、キーを押していないときにtrueになって、押すとfalseになります。

上記のGetKeyDownと使い方はほとんど同じです。

 

Unityのドキュメンテーションから、識別されるキーの種類がたくさん紹介されているので、参考までに。

https://docs.unity3d.com/ja/2019.1/ScriptReference/KeyCode.html