【Unity】Inputクラスのについて

前回のUnityのエントリーにひき続きて、積読されていた「Unityではじめる2Dゲーム作り徹底ガイド」を少しづつやっています。(P190ぐらいまで) 今回は、その中の「Input」について紹介をしたいと思います。

Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦
大野 功二

SBクリエイティブ
売り上げランキング : 5252

Amazonで詳しく見る

Inputクラス

バイスからの入力を感知するクラスが「Input」クラスです。 [c] float hoge = Input.GetAxis("Horizontal");

bool hogebool = Input.GetButtonDown("Fire1");

[/c]

対応するボタンなどは、[Edit]->[ProjectSetting]->[Input]から確認ができます。

2015-3-1

下記の[Horizontal]の場合は、キーボードの[a][d]もしくは[left(←)][right(→)]に対応しています。

2015-3-1-jojo

[Axes]は自分でオリジナルなモノを登録することもできます。

Input.GetAxis とInput.GetAxisRaw

上下右左の方向は、「Input.GetAxis」 と「Input.GetAxisRaw」で取得ができる。

「Input.GetAxis」の場合、ボタンを押された場合に下記の力が働きます。 これは「スムージング計算」と呼ばれるものです。

2015-3-1-fdsas
  • Gravity : 何もボタンを押していない時の0に戻る力。
  • Dead : デッド・ゾーン。この部分は値が0。
  • Sensitivity : ボタンを押した時の加速度(「-1」「1」に向かっていく速度)
  • Snap : 反対方向のボタンを押した時に、値を0にするかどうか

逆に、「Input.GetAxisRaw」はボタンを押した場合「-1「1」のどちらからの数字しか返しません。 徐々に加速をしていく場合は、「Input.GetAxis」を、一定の間隔で移動する場合は「Input.GetAxisRaw」を使った方がいいです。

その他

キーボード場合は下記のようなInputクラスが利用できます。 [c] //スペースキー boot hoge = Input.GetKey(KeyCode.Space)

//Xボタン boot hoge2 = Input.GetKey(KeyCode.XX)

[/c]

最後に

入力に関しては、スマートフォンの場合はまた違ってきそうな感じがします。 とても簡単に入力を感知できるのは素晴らしいですね。さすがUnity。 ただ、色々なパラメータがあって、それが何を意味しているのかを知るのがとてもむずかしいです。