Unity:スマフォ向けタッチ判定

Unityでのスマフォ向けタッチ判定方法です。

 

Unityでスマフォ向けにゲームを作るときには、画面タッチを判定

またタッチされた座標を扱うことが多くあります。

 

今回はそれに向けたタッチ判定方法や、タッチ座標の取得方法を解説していきたいと思います。

それではさっそく解説に移ります。

 

1:タッチされているかの判定

if(Input.touchCount == 1){

処理内容

}

 

Input.touchCount でタッチされている画面箇所の個数を数えることができます

それを利用し画面がユーザーにタッチされているかを上のコードで判定しています。

 

2:タッチされている座標を取得する

Input.touches[0].position

 

Input.touches[i]でi番目タッチの情報を取得しています。

その後ろに.positionをつけることで座標を取得することができます。

 

3:現在のTouch状態を判別する

こちらに関しては5つのフェーズを判別することができます。できるのは下記の5つです。

  1. Began 指がスクリーンをタッチしたばかりです。
  2. Moved 指がスクリーン上で動きました。
  3. Stationary 指がスクリーンをタッチしてますが最終フレームから移動してません。
  4. Ended 指がスクリーン上から離れました。これはタッチの最終フェーズです。
  5. Canceled システムがタッチのトラッキングをキャンセルしたとき。

これらの状態を現在の状態と比較し、判別します。

 

使い方の例としてBeginの判別のコードをかくと、

 

if (touch.phase == TouchPhase.Began){

タッチ初めの処理を書く

}

のようになります。こうすることで現在の状態と判別して条件文を実行することができます

 
ここでのtouch.phaseのtouchはTouchクラスのインスタンスです。Touchクラスのインスタンスは

Touch tch = Input.GetTouch(0);

のようにすることで取得することができます。上では最初のタッチの情報を取得しています。

 

Touch型では状態のほかにもタッチした回数などの情報を取得することができます。

取得できる情報については詳しくはこちらをご覧ください。

 

Unityでスマフォ向けゲームを使うときは必ずと言っていいほどタッチの判定は

使うので、常に使えるようにしておきたいですね。

 

以上、UnityでのTouch判定の実装方法でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です