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