From cad87129e5ea2fd23cc195ed0444bd38f1117aa7 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 05 八月 2025 15:51:54 +0800 Subject: [PATCH] 79 【常规】背包 - 随机宝箱界面,自选宝箱界面,获得物品奖励界面 --- Main/Component/UI/Common/LongPressButton.cs | 150 +++++++++++++++++++++++++------------------------ 1 files changed, 76 insertions(+), 74 deletions(-) diff --git a/Main/Component/UI/Common/LongPressButton.cs b/Main/Component/UI/Common/LongPressButton.cs index b84d4ce..3cb9cf1 100644 --- a/Main/Component/UI/Common/LongPressButton.cs +++ b/Main/Component/UI/Common/LongPressButton.cs @@ -6,93 +6,95 @@ 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) + m_PressTime += Time.deltaTime; + if (m_PressTime < m_LongPressCheckTime) { - 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) + if (m_PressIntervalTime >= m_LongPressIntervalTime) { - 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; + onPress.Invoke(); + m_PressIntervalTime = 0.0f; } + m_PressIntervalTime += Time.deltaTime; + m_LongPress = true; } + } - protected override void OnEnable() - { - base.OnEnable(); - m_LongPress = false; - m_IsButtonDown = false; - } - } \ 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