using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using System.Collections;
public class test : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler, IPointerClickHandler
{
public float interval = 0.1f;
[SerializeField]
UnityEvent m_OnLongpress = new UnityEvent();
private bool isPointDown = false;
private float lastInvokeTime;
// Update is called once per frame
void Update()
{
if (isPointDown)
{
if (Time.time - lastInvokeTime > interval)
{
//触发点击;
m_OnLongpress.Invoke();
lastInvokeTime = Time.time;
Debug.Log("长按");
}
}
}
public void OnPointerDown(PointerEventData eventData)
{
m_OnLongpress.Invoke();
isPointDown = true;
lastInvokeTime = Time.time;
Debug.Log("鼠标按下");
}
public void OnPointerUp(PointerEventData eventData)
{
isPointDown = false;
Debug.Log("鼠标抬起");
}
public void OnPointerExit(PointerEventData eventData)
{
isPointDown = false;
Debug.Log("鼠标退出");
}
public void OnPointerClick(PointerEventData eventData)
{
isPointDown = false;
Debug.Log("鼠标点击");
}
}