エンジニア戦記

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

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


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

例えば、ポケモン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を使ってるっぽい。

なんとMITライセンス。さすがMIT!!!

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

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

プライバシーポリシー 免責事項