【Unity】スワイプとフリックの判定

f:id:nuakam:20180924115239j:plain:w500

スマホで画面移動するとき、スワイプとフリックがどうしても必要。
わかりにくい操作感だとストレスになってしまう。

スワイプとフリック


独自調査の結果(`・ω・´)ゞアプリ内だと「メニューボタン」「スワイプ」「フリック」全て使うものが多い気がする。


例えば、ポケモンGoの手持ちポケモン一覧と卵の切り替えや、ピンタレストのお知らせ欄とか。
ホーム画面だと、スワイプとフリックだけが多い。


ただ意外と有名アプリのどれもが挙動がおかしかったりする。
アプリなんて意外とバグだらけ(╯°□°)╯︵ ┻━┻

GUIつけると細かいところまで見てられないから仕方ないのかもしれない。

目標

タップ、スワイプ、ボタンで画面を動かしたい。

まず、スワイプとフリックはAndoridじゃ無理。諦めよう。

どうしたってカクつく
ずーっとAndoridでデバックしててカクカクが治らず、なんとなくIOSで試したらヌルヌルだった。
ピンタレストなんかでもAndroidだとボタンだけになってたりする。

ポケGOはどうなんだろう…

実装

スワイプはマウスでいうところのドラッグ
フリックは一瞬だけスワイプするやつ

考え方は簡単
1.画面押下された位置を取得する。
2.指が話された位置を取得する。
3.1,2の時間または距離でスワイプとフリックの判定をする。


ググれば色々出てくるんだけどどれも大体同じ処理

qiita.com
こことか分かりやすくてオススメ


ただどれも痒いところに手が届かないというか、、、う~ん
自分で作っても痒さは取れない。

Unityの限界なのかもしれない。
ポケモンGoもUnityでジェスチャ取得にはhttps://www.assetstore.unity3d.com/jp/#!/content/7394このTouchScriptというAssetを使ってるっぽい。


ただそれでもAndroidはうーん。。

まだまだ開発途中ということで、何かいい方法がないかを模索中。