かずおの開発ブログ(主にRuby)

日々の開発のことを色々書きます。

スワイプした十字方向を取得

かずおです。

今回はよくスマホゲーム開発をしていたらよくよくやりたくなるであろうスワイプ操作の取得について書きたいと思います。

完成イメージ

f:id:kazuooooo:20150425210240p:plain

 

完成イメージはこんな感じです。画面をスワイプするとスワイプした方向が画面中央のテキストに表示されるというシンプルなものですね。

 

スクリプト

まず今回用いるスクリプト(SwipeDetector.cs)はこちらです。X方向、Y方向それぞれの差分をスワイプした距離とSignの値を用いてスワイプした方向を判定しています。

gist.github.com

作成手順

手順といってもとってもシンプルです。

1. まずUnityProjectを作成してこんなかんじでCanvasにPanelとTextを配置してみてください。

f:id:kazuooooo:20150425210641p:plain

2.続いて適当なオブジェクトに作成したSwipeDetectorをアタッチします。(今回はメインカメラにアタッチしています。)

f:id:kazuooooo:20150425211603p:plain

ここでインスペクターに表示されているMin Swipe Dist XとYですがこれはこの距離以上スワイプしたらスワイプしましたよーと見なす距離です。これが0だとタップしただけのつもりでもスワイプしたと見なしてしまいます。50くらいがおすすめです。(0が入力されている場合は自動的に50が入力されるようになっています。あとTextを設定するのもお忘れなく。)

 

3.あとはUnityRemoteかビルドで再生してみてください。スワイプした方向に文字が表示されましたね!

f:id:kazuooooo:20150425212156p:plain

 

うまく出来ましたでしょうか?これを使えば上にスワイプしたときになんとかみたいな処理は出来ますのでぜひご活用ください!

また今回は斜めとかの処理も入っていないのでこれをもとに改変して作ってみてもいいかもしれません!

ではまた!