hch
13 小时以前 770a81d6176e1466b9a2604136438869ba53b9b4
0312 主界面增加消耗倍数显示
2个文件已修改
43 ■■■■ 已修改文件
Main/Component/UI/Core/GradientText.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/MainWin.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Core/GradientText.cs
@@ -31,7 +31,6 @@
        Horizontal,     // 水平渐变
        Vertical,       // 垂直渐变
        Diagonal,       // 对角线渐变
        Radial,         // 径向渐变
        Custom          // 自定义四角颜色
    }
@@ -154,19 +153,7 @@
        SetVerticesDirty();
    }
    /// <summary>
    /// 设置径向渐变颜色
    /// </summary>
    public void SetRadialGradient(Color centerColor, Color edgeColor)
    {
        m_GradientType = GradientType.Radial;
        m_TopLeftColor = edgeColor;
        m_TopRightColor = edgeColor;
        m_BottomLeftColor = edgeColor;
        m_BottomRightColor = edgeColor;
        // 径向渐变需要在顶点着色器中处理
        SetVerticesDirty();
    }
    protected override void OnPopulateMesh(VertexHelper vh)
    {
@@ -221,21 +208,21 @@
                return Color.Lerp(m_TopLeftColor, m_TopRightColor, x);
                
            case GradientType.Vertical:
                return Color.Lerp(m_TopLeftColor, m_BottomLeftColor, y);
                return Color.Lerp(m_TopLeftColor, m_BottomLeftColor, 1 - y);
                
            case GradientType.Diagonal:
                return Color.Lerp(m_TopLeftColor, m_BottomRightColor, (x + y) * 0.5f);
                // 对角线渐变:从左上到右下
                // 使用更准确的对角线计算,确保从左上到右下的渐变
                var diagonalFactor = Mathf.Clamp01((x + (1 - y)) * 0.5f);
                return Color.Lerp(m_TopLeftColor, m_BottomRightColor, diagonalFactor);
                
            case GradientType.Radial:
                var center = new Vector2(0.5f, 0.5f);
                var distance = Vector2.Distance(new Vector2(x, y), center);
                return Color.Lerp(m_TopLeftColor, m_BottomRightColor, distance * 2f);
                
            case GradientType.Custom:
                // 双线性插值
                // 双线性插值:修正Y轴方向
                var topColor = Color.Lerp(m_TopLeftColor, m_TopRightColor, x);
                var bottomColor = Color.Lerp(m_BottomLeftColor, m_BottomRightColor, x);
                return Color.Lerp(topColor, bottomColor, y);
                return Color.Lerp(topColor, bottomColor, 1 - y);
                
            default:
                return color;
Main/System/Main/MainWin.cs
@@ -28,6 +28,7 @@
    [SerializeField] UIEffectPlayer openCloseAnim;
    [SerializeField] FillTween cdTween;
    [SerializeField] Text hammerText;
    [SerializeField] Text multiFightText;
    bool isForcePlayFightUIAnim = true; //强制播放战斗锤子框动画
@@ -54,6 +55,7 @@
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent += OnSkillCast;
        RenameManager.Instance.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent;
        UIManager.Instance.OnCloseWindow += OnCloseWindow;
        base.OnPreOpen();
        // 刷新UI
@@ -65,6 +67,7 @@
        PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent -= OnSkillCast;
        RenameManager.Instance.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent;
        UIManager.Instance.OnCloseWindow -= OnCloseWindow;
        base.OnPreClose();
        isForcePlayFightUIAnim = true;
    }
@@ -79,6 +82,13 @@
        topBar.SetActive(functionOrder == 0 || functionOrder == 2);
    }
    void OnCloseWindow(UIBase _ui)
    {
        if (_ui.name == "AutoFightWin")
        {
            multiFightText.text = Language.Get("MultiFight", AutoFightModel.Instance.fightCost);
        }
    }
    //战斗按钮动画
    void ClickAnimation(int index)
@@ -293,6 +303,7 @@
            fightOtherWinBG.SetActive(false);
            fightOtherWinWarnImg.SetActive(false);
            fightBG.SetActive(true);
            multiFightText.text = Language.Get("MultiFight", AutoFightModel.Instance.fightCost);
            if (BattleManager.Instance.storyBattleField != null &&
@@ -313,6 +324,7 @@
        {
            //非主城界面
            fightOtherWinBG.SetActive(true);
            multiFightText.text = "";
            fightBG.SetActive(false);
            if (BattleManager.Instance.storyBattleField != null &&
            BattleManager.Instance.storyBattleField.GetBattleMode() == BattleMode.Stop)