//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, March 16, 2019 //-------------------------------------------------------- using System; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; public class GestureCatcher : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { BizEvent m_OnDrag = new BizEvent(); Vector2 prePosition = Vector2.zero; public void SetDragListener(Action callBack) { m_OnDrag.Dispose(); m_OnDrag += callBack; } public void RemoveListener() { m_OnDrag.Dispose(); } public void OnBeginDrag(PointerEventData eventData) { prePosition = eventData.position; } public void OnDrag(PointerEventData eventData) { var deltaPosition = eventData.position - prePosition; m_OnDrag.Invoke(deltaPosition); prePosition = eventData.position; } public void OnEndDrag(PointerEventData eventData) { prePosition = eventData.position; } }