Touch Gesture Recognition for Unity - YouTube

使い方

using SatorImaging.UnityTouchRecognizer; する。

TouchRecognizer に初めてアクセスしたときに初期化されるが、必要に応じて TouchRecognizer.Initialize() で明示的にイニシャライズする。

MonoBehaviour の Update() 内などで、TouchRecognizer.Update() を毎フレーム呼ぶ。

※ 今時点で .Update() は、同一フレーム内で何回呼ばれても一度しか更新しない。という処理はしていないので、複数の場所で .Update() しない。

タップ判定の閾値

時間の閾値のみでタップ距離の閾値は無し。.Get***() で距離や角度の閾値を指定出来るので必要であれば。

タップ判定

タッチしている指の数

UnityEngine.Touch

タッチしていないときは TouchRecognizer.nullTouch が返ってくる。0 > Touch.fingerId なら nullTouch。

タッチの継続時間

ジェスチャー

ジェスチャー系のパラメーターはフリック判定で使ったりするので、.Update() するまでは直前の値を保持し続ける。

.Get***() で Threshold を指定した場合は閾値を超えた分が返ってくる。

タッチしている指が2本の場合に .SwipeVector 他、1本指のジェスチャーを取ると float.NaNVector2(float.NaN, float.NaN)int.MinValue が返ってくる。

なので、基本は .FingerCount で処理を分ける。

スワイプ

フリック

フリックした後、カメラがスーーーっと止まる、をやろうとすると、ベクトルの減衰処理が必要だったりなので、機能を追加予定。

今時点でのフリック判定は、指数が減ったフレーム(.IsFingerCountDecreased)で、.FingerCount が望みの数の時に .SwipeDeltaVector 等の .magnitude が閾値を超えていたら .SwipeVector.SwipeDeltaVector を使って良い感じにする、で出来る(ハズ

ピンチ(拡大・縮小)

ピンチ(回転)

ピンチ(スワイプ)