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("鼠标点击"); }}using UnityEngine;using UnityEngine.Events;u