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