タッチ操作はIphoneやAndroidといった全面タッチパネルの端末の華だと思う。
なのでどのFWもタッチ操作は割と簡単に組めるようにはなってる。
UnityでもInput系で指の位置を感知できる。
けど、スワイプや2本指スワイプ、ピンチ等の動作を全部組み込もうとすると
少々面倒な事になる。
汎用的に組もうとすると、かなり面倒くさくなるかもしれない。
組んだ自分が言うんだから間違いない(キリ
そこらへんを、うまい具合に簡単実装できるアセットが、InputTouchesだ。
【InputTouches】は、タッチ系の操作をサポートするアセットだ。
簡単にいえば、下の機能を簡単に実装できる。
・スワイプ
・ドラッグ(タップした状態で移動する)
・ダブルフィンガードラッグ(2本指でタップした状態で移動する)
・ピンチ
・タップ
・ダブルタップ
・ローテート(よくわからない)
実際の動作はデモがあるので、それを見たほうがわかりやすいかも。
とは言え、デモではピンチやダブルフィンガードラッグが使えないので、
想像にお任せする訳だが。
■InputTouchesの使用方法
InputTouchesの使い方は、大きく分けて2ステップ。
1.ジェスチャーを判定できるようにする
2.ジェスチャーイベントを登録する
1.ジェスチャーを判定できるようにする
これは付属の[InputPrefab]>[Gesture]プレハブをシーンに登録するだけで良い。
この[Gesture]プレハブには、[Tap Detector]や[Swipe Detector]、[Dual Finger Detector]などの
タップ時の動作を微調整するコンポーネントが付いており、
これを調整することで、ダブルタップまでの時間判定や、スワイプの最低距離を調整できる。
2.ジェスチャーイベントを登録する
これは少々ややこしいけど、イベントを使って実装する。
イベントはC#の基本機能で、変数にメソッドを登録して使う的なモノ。
イベントの詳しい説明は、【WisdomSoft(旧)>C#入門>イベント】をどうぞ。
使い方は、ソースコードのGestureオブジェクトの各イベントに、操作時のアクションを登録するだけ。
GestureはStaticなオブジェクトなので、どこからでも参照できる。
具体的には、こんな感じ。
public void onUserDraggable(DragInfo d)
{
// ドラッグなう!
}
void Start()
{
Gesture.onDraggingE += onUserDraggable;
}
イベントのフォーマットとか動作は、付属のPDFに書いてあるので、それを読むが吉。
JSやBooでイベントって動くのかな・・・