| 123456789101112131415161718192021222324252627282930313233343536 |
- 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;
- }
- }
- }
|