devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

指定した領域内でタップ操作を監視するサンプル。
Unity Remoteでストレスなく動作確認ができるようにするため、Touch.Phaseは使っていません。

先日のdelegateの仕組みを使い、タップ操作が行われた際に実行する関数を定義し指定することが出来る。
タップ時のイベントリスナーを登録するような感じ。

タップ操作の定義:

・指定した領域内で指が触れて、指定した領域内で指が離された時のみタップ操作が行われたこととする。
・領域外で指が離された場合はタップ操作とみなさない。
・複数の指が触れた場合は、最初に触れた指(fingerIdがゼロ)が監視の対象となる。

シーンにEmpty(GameObject)を2つ追加して、それぞれをSceneとTapObserverに名前を変更。
SceneにはScene.cs、TapObserverにはTapObserver.csスクリプトを追加。

タップ操作(指)の状態を
・UP : 画面が触れられていない
・DOWN : 領域外が触れられた
・TAP : 領域内が触れられた
・END : 領域内で離された
・CANCEL : 領域外へ移動した
の5つの状態で管理する。

31-91行目:現在の状態に応じて処理を行う。遷移が必要な時には遷移先の状態を設定する。
93-118行目:遷移先が設定されている場合は、遷移する時に必要な処理を行う。

10行目:TapObserverのコンポーネントを取得
11行目:コールバック関数(タップされた時に呼び出される関数)を設定
12-14行目:タップを監視する領域を設定。ここでは、画面下半分のタップを監視するように設定
17-20行目:コールバック関数の定義

Pocket

コメントを残す

Trackback URL: