From ca577b96e0022e0ddaa8e106e147e53d8166df1c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 07 十一月 2025 11:40:36 +0800
Subject: [PATCH] 164 天子的考验-客户端
---
Main/Component/UI/Common/LongPressButton.cs | 159 ++++++++++++++++++++++++++++-------------------------
1 files changed, 84 insertions(+), 75 deletions(-)
diff --git a/Main/Component/UI/Common/LongPressButton.cs b/Main/Component/UI/Common/LongPressButton.cs
index b84d4ce..d5ce059 100644
--- a/Main/Component/UI/Common/LongPressButton.cs
+++ b/Main/Component/UI/Common/LongPressButton.cs
@@ -6,93 +6,102 @@
using UnityEngine.Serialization;
using UnityEngine.UI;
- public class LongPressButton : ButtonEx
+public class LongPressButton : ButtonEx
+{
+ public class ButtonPressEvent : UnityEvent { }
+
+ //闀挎寜鐩戝惉
+ [FormerlySerializedAs("onPress")]
+ [SerializeField]
+ private ButtonPressEvent m_OnPress = new ButtonPressEvent();
+ public ButtonPressEvent onPress
{
- public class ButtonPressEvent : UnityEvent { }
+ get { return m_OnPress; }
+ set { m_OnPress = value; }
+ }
- [FormerlySerializedAs("onPress")]
- [SerializeField]
- private ButtonPressEvent m_OnPress = new ButtonPressEvent();
- public ButtonPressEvent onPress
+ [SerializeField]
+ float m_LongPressCheckTime = 0.3f;
+ public float longPressCheckTime
+ {
+ get { return m_LongPressCheckTime; }
+ set { m_LongPressCheckTime = value; }
+ }
+ [SerializeField]
+ float m_LongPressIntervalTime = 0.1f;
+ public float longPressIntervalTime
+ {
+ get { return m_LongPressIntervalTime; }
+ set { m_LongPressIntervalTime = value; }
+ }
+
+ float m_PressTime = 0.0f;
+ float m_PressIntervalTime = 0.0f;
+ bool m_LongPress = false;
+ bool m_IsButtonDown = false;
+
+ public override void OnPointerClick(PointerEventData eventData)
+ {
+ if (m_LongPress)
{
- get { return m_OnPress; }
- set { m_OnPress = value; }
+ m_LongPress = false;
+ return;
}
+ base.OnPointerClick(eventData);
+ }
- [SerializeField]
- float m_LongPressCheckTime = 0.5f;
- public float longPressCheckTime
- {
- get { return m_LongPressCheckTime; }
- set { m_LongPressCheckTime = value; }
- }
- [SerializeField]
- float m_LongPressIntervalTime = 0.1f;
- public float longPressIntervalTime
- {
- get { return m_LongPressIntervalTime; }
- set { m_LongPressIntervalTime = value; }
- }
+ public override void OnPointerDown(PointerEventData eventData)
+ {
+ base.OnPointerDown(eventData);
+ m_PressTime = 0.0f;
+ m_PressIntervalTime = 0.0f;
+ m_IsButtonDown = true;
+ }
- float m_PressTime = 0.0f;
- float m_PressIntervalTime = 0.0f;
- bool m_LongPress = false;
- bool m_IsButtonDown = false;
+ public override void OnPointerUp(PointerEventData eventData)
+ {
+ base.OnPointerUp(eventData);
+ m_IsButtonDown = false;
+ }
- public override void OnPointerClick(PointerEventData eventData)
+ public override void OnPointerExit(PointerEventData eventData)
+ {
+ base.OnPointerExit(eventData);
+ m_IsButtonDown = false;
+ m_LongPress = false;
+ }
+
+ private void Update()
+ {
+ if (m_IsButtonDown)
{
- if (m_LongPress)
- {
+ if (!this.interactable || !this.IsActive() || !this.enabled)
+ {
+ // 濡傛灉鎸夐挳涓嶅彲鐢紝鍒欏彇娑堥暱鎸夌姸鎬�
+ m_IsButtonDown = false;
m_LongPress = false;
return;
}
- base.OnPointerClick(eventData);
- }
-
- public override void OnPointerDown(PointerEventData eventData)
- {
- base.OnPointerDown(eventData);
- m_PressTime = 0.0f;
- m_PressIntervalTime = 0.0f;
- m_IsButtonDown = true;
- }
-
- public override void OnPointerUp(PointerEventData eventData)
- {
- base.OnPointerUp(eventData);
- m_IsButtonDown = false;
- }
-
- public override void OnPointerExit(PointerEventData eventData)
- {
- base.OnPointerExit(eventData);
- m_IsButtonDown = false;
- m_LongPress = false;
- }
-
- private void Update()
- {
- if (m_IsButtonDown)
+ m_PressTime += Time.deltaTime;
+ if (m_PressTime < m_LongPressCheckTime)
{
- m_PressTime += Time.deltaTime;
- if (m_PressTime < m_LongPressCheckTime)
- {
- return;
- }
- if (m_PressIntervalTime >= m_LongPressIntervalTime)
- {
- onPress.Invoke();
- m_PressIntervalTime = 0.0f;
- }
- m_PressIntervalTime += Time.deltaTime;
- m_LongPress = true;
+ return;
}
- }
- protected override void OnEnable()
- {
- base.OnEnable();
- m_LongPress = false;
- m_IsButtonDown = false;
+ if (m_PressIntervalTime >= m_LongPressIntervalTime)
+ {
+ onPress.Invoke();
+ m_PressIntervalTime = 0.0f;
+ }
+ m_PressIntervalTime += Time.deltaTime;
+ m_LongPress = true;
}
- }
\ No newline at end of file
+ }
+
+ protected override void OnEnable()
+ {
+ base.OnEnable();
+ m_LongPress = false;
+ m_IsButtonDown = false;
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0