Unity備忘録8頁目「様々な入力1」

江上宿六です。

 

前回はマウスの左右クリックでCubeを回転させてみました。 その実現のために

Input.GetMouseButtonDownを使いましたが、このInputにはマウス以外にも

色々な入力を取得出来るので、使えそうなものを記しておこうと思いまして。

とはいえまずはマウスの入力です。

 

・GetMouseButtonDown

・GetMouseButtonUp

・GetMouseButton

 

これらはマウスのボタン入力を取得できるものですが、それぞれ違いがあります。

GetMouseButtonDownはボタンが押された瞬間だけ真を返し、

GetMouseButtonUpはボタンが放された瞬間だけ真を返します。

GetMouseButtonはいつ真を返すかというと、ボタンが押され続けている間です。

 

試してみましょう。 Cube用に作ったスクリプトを変えるのは少しアレなので

新たにMouseControllerというC#Scriptを作り、ヒエラルキーでCreateEmptyから

空のオブジェクトを作って、そこにアタッチするようにします。

f:id:y6yegami:20180712185810p:plain

そしてこのように書いてみます。 一文ならこういう風に省略できるので、

分岐先が一文なら自分はこういう風にします、善し悪しはあるでしょうけども。

 

GetMouseButtonDownが真ならMouse Down!と表示し、

GetMouseButtonUpが真ならMouse Up!と表示し、

GetMouseButttonが真ならMouseと表示する、という中身です。

f:id:y6yegami:20180712193820p:plain

実行して左クリックをするとコンソールにこのように表示されました。

若干切り貼り感はあるのは、押され続けてる所が凄く長くなったからです。

ともかくマウスがクリックされ、押され続け、離されたという流れが分かります。

 

押し続けるというものは色々と使い道が思いつくと思いますが、離すというのは

どういう時に使えるかというと、自分の場合はコマンド選択とかをする時には

押した瞬間じゃなくて離した瞬間で処理を行う事が多いです。 誤選択とか

防げたりしますし、効果音と合わせると心地よさを感じますから、個人的に。

 

アクションのジャンプとかは押した瞬間で良いと思いますけども。

そうそう、溜め攻撃とかの処理は離したときにやると良いかもしれないですね。

  

さて、他の入力についても見ていきましょう。

 

・GetKeyDown

・GetKeyUp

・GetKey

 

これらはキーボード入力を取得できます。 Down、Upなどありますけど

これはマウスの方と同じです。 これの引数に渡すのはKeyCodeというもので

例えばキーボードのAを押したのを取得したい場合はKeyCode.Aを渡します。

f:id:y6yegami:20180712194803p:plain

 

f:id:y6yegami:20180712195104p:plain

実行してAを押した結果は、こういう感じです。

KeyCode.LeftArrowで左矢印、KeyCode.UpArrowで上矢印とかも取得出来ます。

3DゲームならWASDの方が一般的な気もしますけども。

 

これでマウスとキーでの入力はだいたい出来ると思います。

でもまだ入力したい装置がありますよねえ、それは次回やれたらやってみます。

自分もまだまだ勉強が不足していまして。