テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

UnityのCollider2DやColliderに対してクリックやドラッグのイベントを使う

Unity4.6よりUnityにはEventSystemが追加されました。これは例えばドラッグやクリックといった基本的な挙動を登録することが出来ます。

例えばダブルクリックを検知するコード。


ダブルクリックを検知する

これをColliderがアタッチされているオブジェクトに追加します。

f:id:tsubaki_t1:20150131013040p:plain

後はメニューバー>GameObject>EventSystemでイベントシステムを配置し、MainCameraにPhysicsRaycasterを設定します。*1

f:id:tsubaki_t1:20150131012714p:plain

もしCollider2Dで使用したい場合、PhysicsRaycast2Dを使用して判定します。

 

これを上手く使うと、例えばIPointerClickHandlerを使ってダブルクリックするといったイベントを使用したり、ゲーム内のユニットをクリックするといった事が簡単に実装出来るので、若干便利です。

 

使えるイベントはこちら

  • IPointerEnterHandler
    ポインタがオブジェクトに入ったときOnPointerEnterを呼ぶ
  • IPointerExitH​​andler
    ポインタがオブジェクトから出たときにOnPointerExitを呼ぶ
  • IPointerDownHandler
    ポインタがオブジェクト上で押されたときにOnPointerDownを呼ぶ
  • IPointerUpHandler
    ポインタがリリースされたときにOnPointerUpを呼ぶ
  • IPointerClickHandler
    ポインタが同じオブジェクトに押され、解放されたときにOnPointerClickを呼ぶ
  • IInitializePotentialDragHandler
    ドラッグターゲットが検出されると、値を初期化するためにOnInitializePotentialDragを呼ぶ
  • IBeginDragHandler
    ドラッグ開始時にOnBeginDragを呼ぶ
  • IDragHandler
    ドラッグ中にOnDragを呼ぶ
  • IEndDragHandler
    ドラッグ終了時にOnEndDragを呼ぶ
  • IDropHandler
    ドロップ時にOnDropを呼ぶ
  • IScrollHandler
    マウススクロール時にOnScrollを呼ぶ
  • IUpdateSelectedHandler
    各チック選択時にOnUpdateSelectedを呼ぶ
  • ISelectHandler
    選択時にOnSelectを呼ぶ
  • IDeselectHandler
    選択解除時にOnDeselectを呼ぶ
  • IMoveHandler
    移動イベントが発生したときにOnMoveを呼ぶ
  • ISubmitHandler
    Submitが押された時にOnSubmitを呼ぶ
  • ICancelHandler
    キャンセル時にOnCancelを呼ぶ

Unity - Manual: Supported Events

*1:逆に言えばEventSystemが無いとuGUIを含む全てのイベントが反応しないので注意が必要です。