* 作者:闪电Y黑客
* 日期: 2019.7.16
* 功能:拖拽事件监听
using System;
using UnityEngine;
using UnityEngine.EventSystems;
/*
* 作者:闪电Y黑客
*
* 日期: 2019.7.16
*
* 功能:拖拽事件监听
*
*/
namespace SDHK_Tool.Component
{
/// <summary>
/// 触摸事件监听器:【拖拽事件】
/// </summary>
public class SC_TouchEvent_Drag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IDropHandler, IScrollHandler
{
[Tooltip("忽略鼠标")]
public bool IgnoreMouse = false;
/// <summary>
/// 触摸事件:拖拽第一帧
/// </summary>
public Action TouchOnStartDrag;
/// <summary>
/// 触摸事件:拖拽中
/// </summary>
public Action TouchOnDrag;
/// <summary>
/// 触摸事件:拖拽结束
/// </summary>
public Action TouchOnEndDrag;
/// <summary>
/// 触摸事件:在原对象上拖拽结束
/// </summary>
public Action TouchOnEndDrop;
public Action<float> TouchOnScroll; //鼠标滚轮
void Start()
{
}
public void OnBeginDrag(PointerEventData eventData)
{
if (IgnoreMouse && eventData.pointerId < 0) return;
if (TouchOnStartDrag != null) TouchOnStartDrag();
}
public void OnDrag(PointerEventData eventData)
{
if (IgnoreMouse && eventData.pointerId < 0) return;
if (TouchOnDrag != null) TouchOnDrag();
}
public void OnEndDrag(PointerEventData eventData)
{
if (IgnoreMouse && eventData.pointerId < 0) return;
if (TouchOnEndDrag != null) TouchOnEndDrag();
}
public void OnDrop(PointerEventData eventData)
{
if (IgnoreMouse && eventData.pointerId < 0) return;
if (TouchOnEndDrop != null) TouchOnEndDrop();
}
public void OnScroll(PointerEventData eventData)
{
if (IgnoreMouse && eventData.pointerId < 0) return;
if (TouchOnScroll != null) TouchOnScroll(eventData.scrollDelta.y);
}
}
}