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