hch
2026-01-29 a49132dd5d0f7ca635c05460cd02969853199b2b
64 【命格】自动推演问题 - 特效加速
3个文件已修改
52 ■■■■ 已修改文件
Main/Component/UI/Effect/EffectPlayer.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Mingge/MinggeManager.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Mingge/MinggeWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Effect/EffectPlayer.cs
@@ -35,7 +35,7 @@
    public EffectConfig effectConfig;
    public float speedRate = 1f;
    public float speedRate = 1f;    //初始化的时候用 修改使用SetSpeed
    [Header("是否循环播放spine特效")]
    public bool isPlaySpineLoop = false;
@@ -249,7 +249,17 @@
    //     return;
    // }
    //越大越快
    public void SetSpeed(float speed)
    {
        speedRate = speed;
        if (spineAnimationState == null)
        {
            Debug.LogError("spineAnimationState is null 可以先调用play");
            return;
        }
        spineAnimationState.TimeScale = speed;
    }
    protected void PlaySpineEffect(bool closePMA = false)
    {
@@ -268,7 +278,6 @@
            spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA;   
            spineComp.raycastTarget = false;
            spineComp.Initialize(true);
            spineComp.timeScale = speedRate;
            // 检查动画是否有相加模式
            // bool hasAdditiveBlend = CheckForAdditiveBlend(spineComp.Skeleton);
            // if (hasAdditiveBlend)
@@ -282,6 +291,7 @@
            spineComp.material = ResManager.Instance.LoadAsset<Material>("Materials", "SkeletonGraphicDefault-Straight");
            spineAnimationState = spineComp.AnimationState;
            spineAnimationState.TimeScale = speedRate;
            spineAnimationState.Data.DefaultMix = 0f;
            spineAnimationState.Complete -= OnSpineAnimationComplete;
            spineAnimationState.Complete += OnSpineAnimationComplete;
Main/System/Mingge/MinggeManager.cs
@@ -94,6 +94,7 @@
        isStartAuto = false;
        isPauseAuto = false;
        qlNotNotify = false;
        decomposeMGList.Clear();
    }
    private void OnBeforePlayerDataInitialize()
@@ -155,10 +156,22 @@
            if (OpenMinggeEquipWin(item))
            {
                //需要玩家处理装备
                if (!decomposeMGList.IsNullOrEmpty())
                {
                    SendDecompose(decomposeMGList.ToArray());
                    decomposeMGList.Clear();
                }
                return true;
            }
        }
        //需要玩家处理装备
        if (!decomposeMGList.IsNullOrEmpty())
        {
            SendDecompose(decomposeMGList.ToArray());
            decomposeMGList.Clear();
        }
        return false;
    }
@@ -534,6 +547,7 @@
        {
            m_IsStartAuto = value;
            isPauseAuto = false;
            decomposeMGList.Clear();
            UpdateRedPoint();
            ChangeAutoEvent?.Invoke();
        }
@@ -668,9 +682,21 @@
            }
        }
        SendDecompose(new byte[] { (byte)mgEquip.gridIndex });
        // SendDecompose(new byte[] { (byte)mgEquip.gridIndex });
        AddDecomposeMG((byte)mgEquip.gridIndex);
        return false;
    }
    List<byte> decomposeMGList = new List<byte>();
    void AddDecomposeMG(byte index)
    {
        if (decomposeMGList.Contains(index))
        {
            return;
        }
        decomposeMGList.Add(index);
    }
    //单方案判断,未开启的也当作可分解,外层多套判断有一套需要就是需要穿戴
    bool CanDecomposeMG(ItemModel mgEquip, MinggeAutoSet autoSet)
@@ -864,15 +890,15 @@
                    if (!ui.tyEffect.isPlaying)
                    {
                        ui.tyEffect.onComplete = null;
                        ui.tyEffect.Play();
                        if (autoSpeedUP)
                        {
                            ui.tyEffect.speedRate = autoTYCDs[0] / autoTYCDs[1];
                            ui.tyEffect.SetSpeed(autoTYCDs[0] / autoTYCDs[1]);
                        }
                        else
                        {
                            ui.tyEffect.speedRate = 1;
                            ui.tyEffect.SetSpeed(1);
                        }
                        ui.tyEffect.Play();
                    }
                }
Main/System/Mingge/MinggeWin.cs
@@ -297,12 +297,12 @@
        {
            MinggeManager.Instance.StartAuto(false);
        }
        tyEffect.speedRate = 1;
        tyEffect.onComplete = () =>
        {
            MinggeManager.Instance.SendTY(1);
        };
        tyEffect.Play();
        tyEffect.SetSpeed(1);
    }