From 27fcdab4830ef0791105be6529a1dfac36b85982 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 24 六月 2025 21:52:31 +0800
Subject: [PATCH] 0312 适配注释供后续根据实际情况用

---
 Main/System/UIBase/UIBase.cs |   66 +++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 27 deletions(-)

diff --git a/Main/System/UIBase/UIBase.cs b/Main/System/UIBase/UIBase.cs
index 0e12e51..d6377ed 100644
--- a/Main/System/UIBase/UIBase.cs
+++ b/Main/System/UIBase/UIBase.cs
@@ -25,7 +25,7 @@
     SlideFromBottom, // 浠庡簳閮ㄦ粦鍏�
     SlideFromLeft, // 浠庡乏渚ф粦鍏�
     SlideFromRight, // 浠庡彸渚ф粦鍏�
-    ScaleOverInOut,// 缂╂斁锛堣秴杩囷級涔嬪悗鍐嶈繑鍥�
+    ScaleOverInOut,// 缂╂斁鏍规嵁鏇茬嚎
 
 }
 
@@ -49,7 +49,7 @@
     // 鍔ㄧ敾鐩稿叧
     [SerializeField] public UIAnimationType openAnimationType = UIAnimationType.None;
     [SerializeField] public UIAnimationType closeAnimationType = UIAnimationType.None;
-    [SerializeField] protected RectTransform _rectTransform; //鐣岄潰榛樿娣诲姞鏍硅妭鐐圭敤浜庤〃鐜扮晫闈㈠紑鍚叧闂姩鐢�
+    [SerializeField] protected RectTransform _rectTransform; //鐣岄潰榛樿娣诲姞鏍硅妭鐐圭敤浜庤〃鐜扮晫闈㈠紑鍚叧闂姩鐢伙紝鎴栬�呰缃�傞厤鐢�
     
     [SerializeField]/*[HideInInspector]*/ public float animeDuration = 0.2f;
     [SerializeField]public TweenCurve scaleOverInOutCurve;
@@ -58,8 +58,6 @@
     // 杩愯鏃剁姸鎬�
     [HideInInspector] public int lastUsedRound = 0;
     [HideInInspector] public UIBase parentUI;
-
-    [HideInInspector] public GameObject rootNode; // 鏍硅妭鐐�
 
     // 瀛怳I绠$悊
     [HideInInspector] public List<UIBase> childrenUI = new List<UIBase>();
@@ -111,7 +109,8 @@
         // 淇濆瓨鍘熷鍊肩敤浜庡姩鐢�
         if (_rectTransform != null)
         {
-            originalPosition = _rectTransform.anchoredPosition;
+            originalPosition = _rectTransform.anchoredPosition;;
+
         }
 
         ApplySettings();
@@ -195,6 +194,9 @@
         }
 
         canvasScaler = GetComponent<CanvasScaler>();
+        canvasScaler.referenceResolution = Constants.DESIGN_RESOLUTION;
+        canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
+        canvasScaler.matchWidthOrHeight = 0;
     }
 
     // 鑾峰彇蹇呰鐨勭粍浠�
@@ -225,6 +227,12 @@
     // 鎵撳紑UI
     public void HandleOpen()
     {
+        if (_rectTransform == null)
+        {
+            Debug.LogError($"鐣岄潰: {uiName} 闇�瑕佽缃牴鑺傜偣_rectTransform ");
+            return;
+        }
+
         OnPreOpen();
         // 濡傛灉姝e湪鎾斁鍔ㄧ敾锛屽厛鍋滄
         StopCurrentAnimation();
@@ -237,6 +245,10 @@
 
         // 鏍规嵁鍔ㄧ敾绫诲瀷鎾斁鎵撳紑鍔ㄧ敾
         PlayOpenAnimation();
+        
+        // // 濡傛灉鍚庣画闇�瑕佺粺涓�澶勭悊鍒樻捣鎴栬�呭皬娓告垙鐨勭晫闈㈤�傞厤闂
+        // _rectTransform.offsetMin = new Vector2(0, 10);  //涓嬫柟
+        // _rectTransform.offsetMax = new Vector2(0, -50); //涓婃柟
 
         OnOpen();
 
@@ -394,9 +406,9 @@
                     canvasGroup.alpha = 0f;
                     canvasGroup.blocksRaycasts = false;
                 }
-                if (canvasScaler != null)
+                if (_rectTransform != null)
                 {
-                    canvasScaler.scaleFactor = 1f;
+                    _rectTransform.localScale = Vector3.one;
                 }
                 break;
 
@@ -406,9 +418,9 @@
                     canvasGroup.alpha = 1f;
                     canvasGroup.blocksRaycasts = false;
                 }
-                if (canvasScaler != null)
+                if (_rectTransform != null)
                 {
-                    canvasScaler.scaleFactor = 0.3f;
+                    _rectTransform.localScale = Vector3.one * 0.3f;
                 }
                 break;
 
@@ -457,9 +469,9 @@
                     canvasGroup.alpha = 1f;
                     canvasGroup.blocksRaycasts = false;
                 }
-                if (canvasScaler != null)
+                if (_rectTransform != null)
                 {
-                    canvasScaler.scaleFactor = 0.3f;
+                    _rectTransform.localScale = Vector3.one * 0.3f;
                 }
                 break;
         }
@@ -482,7 +494,7 @@
                 case UIAnimationType.ScaleInOut:
                     if (_rectTransform != null)
                     {
-                        currentAnimation.Append(DOVirtual.Float(0.3f, 1f, animeDuration, (value) => {canvasScaler.scaleFactor = value;}).SetEase(animationEase));
+                        currentAnimation.Append(DOVirtual.Float(0.3f, 1f, animeDuration, (value) => {_rectTransform.localScale = Vector3.one * value;}).SetEase(animationEase));
                     }
                     break;
 
@@ -498,19 +510,19 @@
                 case UIAnimationType.ScaleOverInOut:
                     if (_rectTransform != null)
                     {
-                        if (null == scaleOverInOutCurve)
-                        {
-                            currentAnimation.Append(DOVirtual.Float(0.3f, 1.2f, animeDuration, 
-                            (value) => {canvasScaler.scaleFactor = value;}).SetEase(animationEase));
-                        }
-                        else
-                        {
-                            currentAnimation.Append(DOVirtual.Float(0.3f, 1.2f, animeDuration, 
-                                (value) => {canvasScaler.scaleFactor = value;}).SetEase(scaleOverInOutCurve.curve));
-                        }
+                        float startScale = scaleOverInOutCurve.curve.Evaluate(0f);
+                        _rectTransform.localScale = Vector3.one * startScale;
+                        currentAnimation.Append(
+                            DOTween.To(
+                                () => _rectTransform.localScale.x,
+                                (value) => _rectTransform.localScale = Vector3.one * value,
+                                1f, 
+                                animeDuration
+                            )
+                            .SetEase(scaleOverInOutCurve.curve)
+                            .OnComplete(() => _rectTransform.localScale = Vector3.one) // 纭繚鏈�缁堝��1姝g‘
+                        );
                         
-
-                        // currentAnimation.Append(DOVirtual.Float(1.2f, 1f, 0.1f, (value) => {canvasScaler.scaleFactor = value;}).SetEase(scaleOverInOutCurve));
                     }
                     break;
             }
@@ -560,9 +572,9 @@
             canvasGroup.alpha = 1f;
             canvasGroup.blocksRaycasts = true;
         }
-        if (canvasScaler != null)
+        if (_rectTransform != null)
         {
-            canvasScaler.scaleFactor = 1f;
+            _rectTransform.localScale = Vector3.one;
         }
 
         if (_rectTransform != null)
@@ -606,7 +618,7 @@
                 case UIAnimationType.ScaleOverInOut:
                     if (_rectTransform != null)
                     {
-                        currentAnimation.Append(DOVirtual.Float(1f, 0.3f, animeDuration, (value) => {canvasScaler.scaleFactor = value;}).SetEase(animationEase));
+                        currentAnimation.Append(DOVirtual.Float(1f, 0.3f, animeDuration, (value) => {_rectTransform.localScale = Vector3.one * value;}).SetEase(animationEase));
                     }
                     break;
 

--
Gitblit v1.8.0