【Unity連載】キーの入力を判定しよう!(GetButton)



はじめに

前回、前々回の記事で、キーの入力を判定することができるメソッドであるGetKeyとメソッドを使いこなす上で欠かせないKeyCodeについて解説しました。

しかし前回の記事を読んでくださった方の中にもいらっしゃるのではないでしょうか?KeyCodeを覚えたり調べたりするのめんどくさ。。。と思った方!そんなあなたはこちら!「Input.GetButton」!このメソッドを使えばKeyCodeを使うことなく、あなたの使いやすい名前でキー入力を定義することができます。


Input.GetButton()とは

実際にスクリプトを書く前にまずはInput.GetKey()というメソッドが具体的に何をすることができるのかを紹介していきます。それはズバリ!GetKey()と同様、指定のキーが入力されるとtrueを返してくれます!しかもKeyCode無しで!「trueもらったところでどうするの?」という方もいらっしゃるかと思いますが、重要なのは、指定のキーが入力されたか否かをスクリプト上でGetすることができるということです。つまり、このメソッドがプレイヤーのキーボード(他にもマウスやコントローラ等)とスクリプトを結び付けてくれるというわけです。


指定のキーとは

上の説明で「指定のキー」というあいまいな書き方をしました。その理由としてはエンターキーやスペースキーといったキーボード上の入力は全てこのメソッドで判定することができます。また、キーボードのみならず、マウスやコントローラといった他のUI機器からの入力まで受け取ることができます。KeyCode無しで!大変優秀ですね。。。(笑)


実際に使ってみる

それでは実際にGetKey()を使ってスクリプトを書いてみましょう。1つ目の例では、エンターキーを入力すると、スクリプトをアタッチした(貼り付けた)オブジェクトがパッと消えるというマジックの様な動きを実装します。
ここで、本記事の内容とは逸れて、オブジェクトを削除するメソッドである「Destroy」が登場します。使い方について詳しく知りたい方は以下を参照してください。

「Destroy」について詳しく知りたい方はこちら

【Unity連載】Destroyを具体例付きで解説

それでは以下スクリプトの解説となります。
GetButton()が使われているのは 行目です。ifの中にGetButtonを入れることで、キーが入力された場合のみ、if以降が読み込まれます。因みに、今回はGetButtonの中に「Enter」とあり、エンターキー入力を判定しています。ここで重要なのは、この「Enter」とは自分で定義したものだということです。GetKeyではKeyCodeを入れなければなりませんでしたが、GetButtonではKeyCodeの代わりに自分で定義した入力を入れることができるのですね。因みに、if以降にはDestroyが書かれており、このスクリプトがアタッチされたオブジェクトを削除します。

void Update()
    {
        //エンターキーが入力された場合「true」
        if (Input.GetButton(“Enter”)){
            //オブジェクトを削除
            Destroy(gameObject);
        }
    }

 

上の「Start」・「Update」がよくわからないよ!という方はこちらの記事を参照

【Unity連載】UnityとC#におけるメソッド一覧

エンターキー入力前

エンターキー入力後


おわりに

みなさんいかがでしたでしょうか?GetKeyに比べて楽そうだなと感じていただけましたでしょうか?ただ、本記事において一点解説を飛ばしていることがあります。気づいている方は大変素晴らしいです。そうです、KeyCodeの代わりに自分で定義できると書いてましたが、そもそもどのように定義するの?というお話です。こちらはInputManagerというものを使って行います。こちらは次回の記事で解説します。乞うご期待!

 

  • このエントリーをはてなブックマークに追加

PAGE TOP