【①概要】
UnityでobjAをobjBにドラッグドロップするとイベントが動作する、という流れを作ろうと試みています。
この時、objAをドロップした先にobjBがない場合、ドラッグ開始点まで戻るとします。
【②これまでやったこと】
以下、ImageGreenをドラッグオブジェクト、ImageWhiteをドロップオブジェクトをします。
ImageGreenを作成し、Collider2D,Rigidbody2D,DragObject.csをアタッチ。
ImageWhiteを作成し、Collider2Dをアタッチ。
DragObject.cs
public class DragObject : MonoBehaviour, IBeginDragHandler,IDragHandler, IEndDragHandler { private Vector3 startR; private RectTransform r; void Start() { r = GetComponent<RectTransform>(); startR = r.localPosition; } public void OnBeginDrag(PointerEventData e) { } public void OnDrag(PointerEventData e) { Vector3 TapPos = Input.mousePosition; TapPos.z = 10f; transform.position = Camera.main.ScreenToWorldPoint(TapPos); } public void OnEndDrag(PointerEventData e) { r.localPosition = startR; } void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.tag == "White") { Debug.Log("OK"); } } }
【③この後やりたいこと】
上記の場合、ImageGreenをドラッグしてImageWhiteに接触した瞬間、デバッグログが表示されてしまいます。
ImageGreenをドロップ→ドロップ地点にWhiteタグ設定オブジェクトがある→デバッグログ表示
※ドロップ地点にWhiteタグ設定オブジェクトがない場合はドラッグ開始地点に戻る
このような動作にしたいのですが、OnTrrigerEnter2Dの制御方法がいまいちわからず詰まっております。
おそらく、ドロップ動作の時にOnTrrigerEnter2Dを作動させるような設定なら、大丈夫だと思ったのですが…。
お知恵をお貸しいただければ幸いございます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/16 05:58