lcy
2025-12-31 d4e6c77836ed5738a55bd6d85f2b105bf3fbd2df
Main/Component/UI/Effect/EffectPlayer.cs
@@ -24,6 +24,7 @@
        {
            if (value != m_EffectID)
            {
                Stop();
                isInit = false;
                m_EffectID = value;
            }
@@ -60,7 +61,11 @@
    protected EffectPenetrationBlocker blocker = null;
    protected bool isInit = false;
    protected bool isPlaying = false;
    public bool isPlaying
    {
        get;
        protected set;
    }
    protected List<ParticleSystem> particleList = new List<ParticleSystem>();
@@ -77,8 +82,12 @@
    protected virtual void OnEnable()
    {
        if (isPlayOnEnable)
        if (isPlayOnEnable && playDelayTime != 0)
        {
            PlayAsync(false).Forget();
        }
        else if (isPlayOnEnable)
        {
            Play(false);
        }
@@ -220,7 +229,7 @@
            PlayerEffect();
        }
    
        SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
    }
@@ -255,7 +264,8 @@
        {
            //LoadAsset 已经有缓存SkeletonDataAsset
            spineComp.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
            spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA;   //为true时会有部分特效不显示 如主界面装备特效
            //为true时会有部分特效不显示 如满级经验条;改成伽马后部分特效正常,还有部分依然要改此设置
            spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA;
            spineComp.raycastTarget = false;
            spineComp.Initialize(true);
            spineComp.timeScale = speedRate;
@@ -279,6 +289,7 @@
        spineComp.enabled = true;
        PlayerTheSpineAnim();
        SoundPlayer.Instance.PlayUIAudioDelay(effectConfig.audio).Forget();
    }
        // 播放指定动画
@@ -341,7 +352,7 @@
        }
        // 从特效预制体池获取特效
        pool = GameObjectPoolManager.Instance.RequestPool(effectPrefab);
        pool = GameObjectPoolManager.Instance.GetPool(effectPrefab);
        effectTarget = pool.Request();
        // 设置父节点和位置
        effectTarget.transform.SetParent(transform);
@@ -369,6 +380,7 @@
        {
            blocker.SetParentCanvas(canvas);
        }
        SoundPlayer.Instance.PlayUIAudioDelay(effectConfig.audio).Forget();
    }
    public async UniTask PlayAsync(bool showLog = true, bool closePMA = false)
@@ -410,10 +422,11 @@
            spineComp.enabled = false;
            isPlaying = false;
            onComplete?.Invoke();
            if (isReleaseImmediately)
            {
                Release();
            }
            // TODO 会报错暂时注释
            // if (isReleaseImmediately)
            // {
            //     Release();
            // }
        }
    }