テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

タッチ操作を簡単実装!Input.Touches

タッチ操作はIphoneAndroidといった全面タッチパネルの端末の華だと思う。
なのでどのFWもタッチ操作は割と簡単に組めるようにはなってる。

UnityでもInput系で指の位置を感知できる。
けど、スワイプや2本指スワイプ、ピンチ等の動作を全部組み込もうとすると
少々面倒な事になる。

汎用的に組もうとすると、かなり面倒くさくなるかもしれない。
組んだ自分が言うんだから間違いない(キリ

そこらへんを、うまい具合に簡単実装できるアセットが、InputTouchesだ。

スクリーンショット 2012-06-06 0.03.49

■InputTouches

InputTouches】は、タッチ系の操作をサポートするアセットだ。

簡単にいえば、下の機能を簡単に実装できる。
・スワイプ
・ドラッグ(タップした状態で移動する)
・ダブルフィンガードラッグ(2本指でタップした状態で移動する)
・ピンチ
・タップ
・ダブルタップ
・ローテート(よくわからない)

実際の動作はデモがあるので、それを見たほうがわかりやすいかも。

とは言え、デモではピンチやダブルフィンガードラッグが使えないので、
想像にお任せする訳だが。

InputTouchesのデモ

スクリーンショット 2012-06-06 0.09.34


■InputTouchesの使用方法

InputTouchesの使い方は、大きく分けて2ステップ。
1.ジェスチャーを判定できるようにする
2.ジェスチャーイベントを登録する

1.ジェスチャーを判定できるようにする

これは付属の[InputPrefab]>[Gesture]プレハブをシーンに登録するだけで良い。

この[Gesture]プレハブには、[Tap Detector]や[Swipe Detector]、[Dual Finger Detector]などの
タップ時の動作を微調整するコンポーネントが付いており、
これを調整することで、ダブルタップまでの時間判定や、スワイプの最低距離を調整できる。

スクリーンショット 2012-06-06 0.38.14


2.ジェスチャーイベントを登録する

これは少々ややこしいけど、イベントを使って実装する。
イベントはC#の基本機能で、変数にメソッドを登録して使う的なモノ。

イベントの詳しい説明は、【WisdomSoft(旧)>C#入門>イベント】をどうぞ。

使い方は、ソースコードのGestureオブジェクトの各イベントに、操作時のアクションを登録するだけ。
GestureはStaticなオブジェクトなので、どこからでも参照できる。

具体的には、こんな感じ。
public void onUserDraggable(DragInfo d)
{
  // ドラッグなう!
}

void Start()
{
  Gesture.onDraggingE += onUserDraggable;
}

イベントのフォーマットとか動作は、付属のPDFに書いてあるので、それを読むが吉。


JSやBooでイベントって動くのかな・・・