all green

プログラム、アプリ作成、Web等備忘録が中心です

Unity ドラッグを強制的に解除する(uGUI、EventTrigger使用)

強制的にドラッグを解除させる方法
(EventTriggerにDragのリスナーを追加する作り)


環境
Unity 5.3.4f1

何パターン化ためしてみた結果。

ドラッグする対象

ドラッグ対象にEventTriggerを追加
イベントはDragを使用

f:id:uwanosora22:20160602060736p:plain

CanvasGroupのBlocksRaycastsを使う

CanvasGroupのBlocksRaycastsをtrueにしてみる。
ドラッグ対象の親オブジェクト(もしくはさらに上層)にCanvasGroupを追加し
BlocksRaycastsのオンオフで制御してみる。


1.ドラッグ開始
  ↓(ドラッグしたままの状態で)
2.CanvasGroupのBlocksRaycastsをfalseに変更
  ↓
3.ドラッグは解除されない


手前にブロックするオブジェクトを表示する

CanvasGroupのBlocksRaycastsがだめなんで
ダメな気がするけどとりあえず試してみる

1.ドラッグ開始
  ↓(ドラッグしたままの状態で)
2.手前にオブジェクトを表示(ImageのRaycastTargetはtrue) 
  ↓
3.ドラッグは解除されない

こんなかんじ
f:id:uwanosora22:20160602060235g:plain

EventTriggerを無効化(コンポーネントの無効化)

1.ドラッグ開始
  ↓(ドラッグしたままの状態で)
2.ドラッグされている対象のEventTrigger.enableをfalse 
  ↓
3.ドラッグが解除された


「手前にブロックするオブジェクトを表示する」で
ドラッグが解除されてくれるとうれしいんだけどな・・・。


ちなみに今回はじめてGIF動画を録画してみた。
結構簡単だったので使ったツールを紹介
screentogif.codeplex.com