yyl
2025-08-25 cec8b67d82c2c2c1662d55c818c4a46bcc0487db
Main/System/Tip/PowerAddWin.cs
@@ -9,26 +9,16 @@
{
    [SerializeField] TextEx txtBase;        //提升或降低前的战斗力
    [SerializeField] TextEx txtChange;      //战斗力变化了多少
    [SerializeField] List<Font> changeFonts;      //战力变化的字体
    [SerializeField] ImageEx imgArrow;      //箭头
    [SerializeField] Transform transZhanLi;         //战力整体框
    [SerializeField] Transform transZhanLiNumAll;         //战力所有变化部分
    [SerializeField] RectTransform transChange;         //箭头和变化数字整体框
    string uiFrameKey = "zhanli_dt";
    [SerializeField] UIFrame uiFrame;
    [SerializeField] List<PowerUpPosition> powerUpPositions;
    //[SerializeField] List<PowerUpPosition> powerUpPositions;
    [Header("淡入变大")]
    [SerializeField] Vector3 startVector;                       //起始大小
    [SerializeField] float fadeInToBigDuration;                 //淡入变大动画完成时间
    [SerializeField] Ease fadeInToBigEaseType;
    [SerializeField] Vector3 fadeInToBigVector;                 //淡入变大目标大小
    [Header("淡入变小")]
    [SerializeField] Vector3 fadeInToSmallVector;               //淡入变小目标大小
    [SerializeField] float fadeInToSmallDuration;               //淡入变小动画完成时间
    [SerializeField] Ease fadeInToSmallEaseType;
    [Header("淡入后移动开始前等待时间/s")]
    [SerializeField] float moveStartWaitTime;
@@ -52,17 +42,7 @@
    [Header("移动结束后淡出开始前等待时间/s")]
    [SerializeField] float moveEndWaitTime;
    [Header("淡出变大")]
    [SerializeField] Vector3 fadeOutToBigVector;                //淡出变大目标大小
    [SerializeField] float fadeOutToBigDuration;                //淡出变大动画完成时间
    [SerializeField] Ease fadeOutToBigEaseType;
    [Header("淡出变小")]
    [SerializeField] float fadeOutToSmallDuration;              //淡出变小动画完成时间
    [SerializeField] Ease fadeOutToSmallEaseType;
    [Header("战力数字位置计算相关")]
    [SerializeField] float txtBaseMultiple;                     //前置的战力数字字母距离倍数
@@ -107,7 +87,15 @@
        PlayerMainDate.Instance.AddPowerEvent -= ResetToWaitMove;
    }
    protected override void OnOpenAnimationComplete()
    {
        fadeInEndTime = Time.time;
        nowState = AnimeState.WaitMove;
        uiFrame.SetActive(true);
        uiFrame.SetLoopCount(1);
        uiFrame.ResetFrame(uiFrameKey);
    }
    #endregion
@@ -124,7 +112,7 @@
                nowState = AnimeState.Move;
                sequence = DOTween.Sequence();
                sequence.Join(transChange.DOMove(new Vector3(txtBase.rectTransform.position.x, transChange.position.y, transChange.position.z) , moveDuration).SetEase(moveEaseType));
                sequence.Join(transChange.DOMove(new Vector3(txtBase.rectTransform.position.x, transChange.position.y, transChange.position.z), moveDuration).SetEase(moveEaseType));
                sequence.Join(txtChange.DOFade(0f, textFadeDuration).SetEase(textFadeEaseType));
                sequence.Join(imgArrow.DOFade(0f, textFadeDuration).SetEase(textFadeEaseType));
@@ -152,9 +140,9 @@
                            sequence.Append(txtBase.DOText(DisplayBasePowerNum(nowValue), rollTime).SetEase(rollEaseType).OnComplete(() => { SetInitPosition(nowValue, changePower, isAdd); }));
                        }
                    }
#if UNITY_EDITOR
                    Debug.Log($"count {i} changeValue {changeValue} nowValue {nowValue} isAdd {isAdd}  basePower {basePower} changePower {changePower} nowPower {nowPower} rollTime {rollTime}");
#endif
// #if UNITY_EDITOR
//                     Debug.Log($"count {i} changeValue {changeValue} nowValue {nowValue} isAdd {isAdd}  basePower {basePower} changePower {changePower} nowPower {nowPower} rollTime {rollTime}");
// #endif
                }
                sequence.Join(textChangeSequence);
@@ -167,14 +155,9 @@
        }
        else if (nowState == AnimeState.WaitFadeOut)
        {
            if (Time.time - moveEndTime > moveEndWaitTime)
            {
                nowState = AnimeState.FadeOut;
                fadeOutSequence = DOTween.Sequence();
                fadeOutSequence.Append(transZhanLi.DOScale(fadeOutToBigVector, fadeOutToBigDuration).SetEase(fadeOutToBigEaseType));
                fadeOutSequence.Append(transZhanLi.DOScale(startVector, fadeOutToSmallDuration).SetEase(fadeOutToSmallEaseType).OnComplete(CloseWindow));
            }
            CloseWindow();
        }
    }
    private void ResetToFadeIn()
@@ -185,25 +168,12 @@
        uiFrame.SetActive(false);
        fadeInEndTime = 0;
        moveEndTime = 0;
        transZhanLi.transform.localScale = startVector;
        CheckPosition();
        SetNum();
        SetInitPosition(basePower, changePower, isAdd);
        ResetColorA();
        DisplayNum();
        nowState = AnimeState.FadeIn;
        transZhanLi.DOScale(fadeInToBigVector, fadeInToBigDuration).SetEase(fadeInToBigEaseType).OnComplete(() =>
        {
            transZhanLi.DOScale(fadeInToSmallVector, fadeInToSmallDuration).SetEase(fadeInToSmallEaseType).OnComplete(() =>
            {
                fadeInEndTime = Time.time;
                nowState = AnimeState.WaitMove;
                uiFrame.SetActive(true);
                uiFrame.SetLoopCount(1);
                uiFrame.ResetFrame(uiFrameKey);
            });
        });
    }
    private void ResetToWaitMove()
@@ -214,7 +184,6 @@
        uiFrame.SetActive(false);
        fadeInEndTime = Time.time;
        moveEndTime = 0;
        transZhanLi.transform.localScale = fadeInToSmallVector;
        SetNum();
        SetInitPosition(basePower, changePower, isAdd);
        ResetColorA();
@@ -294,6 +263,7 @@
    {
        txtBase.text = DisplayBasePowerNum(basePower);
        txtChange.text = DisplayChangePowerNum(isAdd, changePower);
        txtChange.font = changeFonts[isAdd ? 0 : 1];
        imgArrow.SetSprite(DisplayState(isAdd));
    }
@@ -340,16 +310,16 @@
    private void CheckPosition()
    {
        var type = WindowType.None;
        // var type = WindowType.None;
        var _index = powerUpPositions.FindIndex((x) =>
        {
            return x.windowType == type;
        });
        if (_index != -1)
        {
            transZhanLi.transform.localPosition = powerUpPositions[_index].position;
        }
        // var _index = powerUpPositions.FindIndex((x) =>
        // {
        //     return x.windowType == type;
        // });
        // if (_index != -1)
        // {
        //     transZhanLi.transform.localPosition = powerUpPositions[_index].position;
        // }
    }
    [Serializable]