using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using UnityEngine.EventSystems; public class DoubleClickButton : Button { private float _lastTapTime; private int _tapCount; [Header("点击次数要求")] [SerializeField] private int requiredTapCount = 2; [Header("重置时间(秒)")] [SerializeField] private float resetTime = 0.5f; [Header("达到点击次数时触发的事件")] [SerializeField] private UnityEvent onMultiTap; public override void OnPointerClick(PointerEventData eventData) { if (Time.unscaledTime - _lastTapTime > resetTime) { _tapCount = 0; } _lastTapTime = Time.unscaledTime; _tapCount++; if (_tapCount == requiredTapCount) { onMultiTap?.Invoke(); _tapCount = 0; } } }