hch
8 天以前 27fcdab4830ef0791105be6529a1dfac36b85982
Main/System/UIBase/UIBase.cs
@@ -25,7 +25,7 @@
    SlideFromBottom, // 从底部滑入
    SlideFromLeft, // 从左侧滑入
    SlideFromRight, // 从右侧滑入
    ScaleOverInOut,// 缩放(超过)之后再返回
    ScaleOverInOut,// 缩放根据曲线
}
@@ -109,7 +109,8 @@
        // 保存原始值用于动画
        if (_rectTransform != null)
        {
            originalPosition = _rectTransform.anchoredPosition;
            originalPosition = _rectTransform.anchoredPosition;;
        }
        ApplySettings();
@@ -244,6 +245,10 @@
        // 根据动画类型播放打开动画
        PlayOpenAnimation();
        // // 如果后续需要统一处理刘海或者小游戏的界面适配问题
        // _rectTransform.offsetMin = new Vector2(0, 10);  //下方
        // _rectTransform.offsetMax = new Vector2(0, -50); //上方
        OnOpen();
@@ -401,9 +406,9 @@
                    canvasGroup.alpha = 0f;
                    canvasGroup.blocksRaycasts = false;
                }
                if (canvasScaler != null)
                if (_rectTransform != null)
                {
                    canvasScaler.scaleFactor = 1f;
                    _rectTransform.localScale = Vector3.one;
                }
                break;
@@ -413,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;
@@ -464,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;
        }
@@ -489,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;
@@ -505,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正确
                        );
                        
                        // currentAnimation.Append(DOVirtual.Float(1.2f, 1f, 0.1f, (value) => {canvasScaler.scaleFactor = value;}).SetEase(scaleOverInOutCurve));
                    }
                    break;
            }
@@ -567,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)
@@ -613,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;