From 09bc892c7283df8757a07b646d5af21ddaa263d1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 06 十一月 2025 18:22:34 +0800
Subject: [PATCH] 164 天子的考验-客户端

---
 Main/System/Tip/ScrollTipDetail.cs |  173 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 93 insertions(+), 80 deletions(-)

diff --git a/Main/System/Tip/ScrollTipDetail.cs b/Main/System/Tip/ScrollTipDetail.cs
index 2454b68..685e7ec 100644
--- a/Main/System/Tip/ScrollTipDetail.cs
+++ b/Main/System/Tip/ScrollTipDetail.cs
@@ -3,88 +3,101 @@
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
-    [RequireComponent(typeof(CanvasGroup))]
-    public class ScrollTipDetail : MonoBehaviour
+using DG.Tweening;
+[RequireComponent(typeof(CanvasGroup))]
+public class ScrollTipDetail : MonoBehaviour
+{
+
+    RichText text;
+
+    CanvasGroup canvasGroup;
+    [HideInInspector]
+    public ScrollTip.ScrollTipState presentState = ScrollTip.ScrollTipState.Move;
+    private float m_Time = 0;
+    private Vector3 pos = Vector3.zero;
+
+    private float m_TipShowTime;
+    private float m_TipHideTime;
+    private float m_TipDistance;
+
+    private void Awake()
     {
+        canvasGroup = GetComponent<CanvasGroup>();
+        text = transform.Find("Text").GetComponent<RichText>();
+    }
 
-        RichText text;
+    public void ShowTip(SystemHintData _hint)
+    {
+        text.SetExtenalData(_hint.extentionData);
+        text.text = _hint.message;
+    }
 
-        CanvasGroup canvasGroup;
-        [HideInInspector]
-        public ScrollTip.ScrollTipState presentState = ScrollTip.ScrollTipState.Idle;
-        private float m_Time = 0;
-        private Vector3 pos = Vector3.zero;
+    public void SetTipConfig(float _showTime,float _hideTime,float _dis)
+    {
+        m_TipShowTime = _showTime;
+        m_TipHideTime = _hideTime;
+        m_TipDistance = _dis;
+    }
 
-        private float m_TipShowTime;
-        private float m_TipHideTime;
-        private float m_TipDistance;
+    public void Play(ScrollTip.ScrollTipState state)
+    {
+        m_Time = 0;
+        canvasGroup.alpha = 1;
+        pos = transform.localPosition;
+        presentState = state;
+        //LateUpdate 鏀规垚dotwweing
+        Sequence tween = DOTween.Sequence();;
+        tween.Append(transform.DOLocalMove(pos.SetY(pos.y + m_TipDistance), ScrollTip.tipMoveTime)).SetEase(Ease.Linear);
+        tween.AppendInterval(m_TipShowTime);
+        tween.Append(canvasGroup.DOFade(0, m_TipHideTime)).SetEase(Ease.Linear);
+        tween.Play();
+        tween.OnComplete(() =>
+        { 
+            presentState = ScrollTip.ScrollTipState.None;
+            ScrollTip.Release(this, false);
+            ScrollTip.OnTipComplete();
+        });
+    }
 
-        private void Awake()
-        {
-            canvasGroup = GetComponent<CanvasGroup>();
-            text = transform.Find("Text").GetComponent<RichText>();
-        }
-
-        public void ShowTip(SystemHintData _hint)
-        {
-            text.SetExtenalData(_hint.extentionData);
-            text.text = _hint.message;
-        }
-
-        public void SetTipConfig(float _showTime,float _hideTime,float _dis)
-        {
-            m_TipShowTime = _showTime;
-            m_TipHideTime = _hideTime;
-            m_TipDistance = _dis;
-        }
-
-        public void Play(ScrollTip.ScrollTipState state)
-        {
-            m_Time = 0;
-            canvasGroup.alpha = 1;
-            pos = transform.localPosition;
-            presentState = state;
-        }
-
-        private void LateUpdate()
-        {
-            m_Time += Time.deltaTime;
-            switch (presentState) {
-                case ScrollTip.ScrollTipState.Idle: {
-                        m_Time = Mathf.Min(m_Time, m_TipShowTime);
-                        if (m_Time >= m_TipShowTime) {
-                            m_Time = 0;
-                            var index = ScrollTip.m_ActiveTips.IndexOf(this);
-                            if (index == 0) {
-                                presentState = ScrollTip.ScrollTipState.Hide;
-                            }
-                            else {
-                                presentState = ScrollTip.ScrollTipState.None;
-                            }
-                        }
-                    }
-                    break;
-                case ScrollTip.ScrollTipState.Move: {
-                        m_Time = Mathf.Min(m_Time, ScrollTip.tipMoveTime);
-                        transform.localPosition = Vector3.Lerp(pos, pos.SetY(pos.y + m_TipDistance), m_Time / ScrollTip.tipMoveTime);
-                        if (m_Time >= ScrollTip.tipMoveTime) {
-                            m_Time = 0;
-                            presentState = ScrollTip.ScrollTipState.Idle;
-                            ScrollTip.OnTipComplete();
-                        }
-                    }
-                    break;
-                case ScrollTip.ScrollTipState.Hide: {
-                        m_Time = Mathf.Min(m_Time, m_TipHideTime);
-                        canvasGroup.alpha = 1 - m_Time / m_TipHideTime;
-                        if (m_Time >= m_TipHideTime) {
-                            m_Time = 0;
-                            presentState = ScrollTip.ScrollTipState.None;
-                            ScrollTip.Release(this);
-                            ScrollTip.OnTipComplete();
-                        }
-                    }
-                    break;
-            }
-        }
-    }
\ No newline at end of file
+    // private void LateUpdate()
+    // {
+    //     m_Time += Time.deltaTime;
+    //     switch (presentState) {
+    //         case ScrollTip.ScrollTipState.Idle: {
+    //                 m_Time = Mathf.Min(m_Time, m_TipShowTime);
+    //                 if (m_Time >= m_TipShowTime) {
+    //                     m_Time = 0;
+    //                     var index = ScrollTip.m_ActiveTips.IndexOf(this);
+    //                     if (index == 0) {
+    //                         presentState = ScrollTip.ScrollTipState.Hide;
+    //                     }
+    //                     else {
+    //                         presentState = ScrollTip.ScrollTipState.None;
+    //                     }
+    //                 }
+    //             }
+    //             break;
+    //         case ScrollTip.ScrollTipState.Move: {
+    //                 m_Time = Mathf.Min(m_Time, ScrollTip.tipMoveTime);
+    //                 transform.localPosition = Vector3.Lerp(pos, pos.SetY(pos.y + m_TipDistance), m_Time / ScrollTip.tipMoveTime);
+    //                 if (m_Time >= ScrollTip.tipMoveTime) {
+    //                     m_Time = 0;
+    //                     presentState = ScrollTip.ScrollTipState.Idle;
+    //                     ScrollTip.OnTipComplete();
+    //                 }
+    //             }
+    //             break;
+    //         case ScrollTip.ScrollTipState.Hide: {
+    //                 m_Time = Mathf.Min(m_Time, m_TipHideTime);
+    //                 canvasGroup.alpha = 1 - m_Time / m_TipHideTime;
+    //                 if (m_Time >= m_TipHideTime) {
+    //                     m_Time = 0;
+    //                     presentState = ScrollTip.ScrollTipState.None;
+    //                     ScrollTip.Release(this);
+    //                     ScrollTip.OnTipComplete();
+    //                 }
+    //             }
+    //             break;
+    //     }
+    // }
+}
\ No newline at end of file

--
Gitblit v1.8.0