//-------------------------------------------------------- // [Author]: 玩个游戏 // [ Date ]: Saturday, March 16, 2019 //-------------------------------------------------------- using System; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; public class GestureCatcher : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { Action m_OnDrag; Vector2 prePosition = Vector2.zero; public void SetDragListener(Action callBack) { m_OnDrag = callBack; } public void RemoveListener() { m_OnDrag = null; } 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; } }