Unity & NGUI でタッチやスワイプのイベントを取得する
はじめに
- Unity & NGUI で、パズドラやポコパン的な、オブジェクトを選択してなぞるアクションをした場合のイベント取得方法をまとめました。
コード
public class TouchTest : MonoBehaviour { string strId; void Start () { strId = gameObject.GetInstanceID ().ToString (); } // タップ開始終了時に実行 // isDown が true で開始、false で終了 void OnPress (bool isDown) { Debug.Log ("PRESS(" + (isDown ? "DOWN" : "UP") + "): " + strId); } // タップ終了時に実行(タップ開始終了が同じオブジェクト上で発生した場合のみ) // OnPress と重複して実行される void OnClick () { Debug.Log ("CLICK: " + strId); } // ダブルタップ終了時に実行(タップ開始終了が同じオブジェクト上で発生した場合のみ) // OnPress, OnClick と重複して実行される void OnDoubleClick () { Debug.Log ("DOUBLE CLICK: " + strId); } // ドラッグ(スワイプ)開始時に一度だけ実行 void OnDragStart () { Debug.Log ("DRAG START: " + strId); } // ドラッグ(スワイプ)中に繰り返し実行 // delta に移動量が渡される void OnDrag (Vector2 delta) { //Debug.Log ("DRAG: " + strId); } // 別のオブジェクトでドラッグ(スワイプ)を開始した際に、このオブジェクト上にポインタが初めて重なったときに実行 // draggedObject にはドラッグ(スワイプ)を開始したオブジェクトが渡される void OnDragOver (GameObject draggedObject) { Debug.Log ("DRAG OVER: " + strId); } // OnDragOver 後に、このオブジェクト上からポインタが外れた場合に実行 // draggedObject にはドラッグ(スワイプ)を開始したオブジェクトが渡される // このオブジェクト上でドラッグ(スワイプ)を終了した場合も実行される void OnDragOut (GameObject draggedObject) { Debug.Log ("DRAG OUT: " + strId); } // ドラッグ(スワイプ)終了時に実行 void OnDragEnd () { Debug.Log ("DRAG END: " + strId); } }