UnityRemote4でマルチタッチ検出

Unity4.6.1にて、Timbermanのようなスマホ画面左右をそれぞれタップ連打できるサンプルを作ろうとした。

1:想定仕様としては

・画面左(青)、画面右(赤)は同時タップ(マルチタッチ)で計測できる。
 →左右を両親指で連打しまくっても漏れなく計測できる
・ただし、同一エリア内でのマルチタッチはできないようにする。
 →左半分を4本指でタップしても最初に画面に触れた指のみカウントする
というもの。

2:実装としては


・画面全体を覆うCanvasの中にImageを2個(左半分が青Image、右半分が赤Image)を置く。Canvas>ImageってのはUnity4.6からのuGUIです。
・左右それぞれに異なるスクリプトを設定し、それぞれの中で OnPointerDown,OnPointerUp イベントを使った。マルチタッチ判定用にPointerEventDataのpointerIdも使用。※実装は公式チュートリアルとほぼ同じ。

3:UnityRemote4でプレビューしてみると

・何本目の指かを判定するためのpointerIdが、1タッチ目が-1、2タッチ目が-2、3タッチ目が-3、4タッチ目以降は検出されない。という現象になる。
・OnPointerUp時のpointerIdも正しく区別できていない。
・左右のタップが混同されてしまい、予期せぬ挙動となる。

4:プロジェクトをビルドして実機プレビューすると

・pointerIdは1タッチ目が0、2タッチ目が1、3タッチ目が2、4タッチ目も3ときちんと取得できている
・OnPointerUp時もpointerIdも期待通り。
・左右ボタンの混同もない。
※別実験としてCanvas>Buttonのサンプルを作ったが、鬼のように連打するとUnityRemoteでは取得漏れがあったが、ビルドしたものは全タップを取得できている

要するにUnityRemoteはUnityIDE上のプレビューを実機に転送表示させているだけなので、端末上の表示グラフィックも荒いし、タップ取得制度も低い。

以上をつぶやいたところ

と教えてもらった。UnityRemoteってプロジェクトから自分でビルドできるのを知る。ただし左記リンクからはUnityRemote3にリンクされてるのでUnityRemote4のプロジェクトファイルはAssetStoreからDLすべし。
AppleのDeveloperサイトでUnityRemoteビルド用のプロビジョニング作ったりしていざプロジェクトをビルドしようとすると
UnityRemote4_2
ということでPro版じゃないとビルドできないらしい。

ぐぬぬ。

まぁ、UnityRemoteで実機プレビューした際に挙動が怪しいときは、ちゃんとプロジェクトをビルドして実機確認してみるといいよということは分かった。