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

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

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

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

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

Amazonで詳しく見る


Inputクラス

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

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


対応するボタンなどは、[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クラスが利用できます。
//スペースキー
boot hoge = Input.GetKey(KeyCode.Space)

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


最後に

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

Related Posts Plugin for WordPress, Blogger...