public override void Update(float currTime, ISpecialEffectContext context, bool force = false)
    {
        //未初始化成功则不更新
        if (effInst == null)
        {
            return;
        }

        if (speAnimClip.IsKilled && !force)
        {//若特效被杀死
            if (!_OnKilled())
            {
                return;
            }
        }

        float localTime = _Trans2LocalTime(currTime);

        if (_IsInPlayTimeInterval(currTime))
        {     //在播放区间内对特效进行启用播放
            if (!effInst.gameObject.activeInHierarchy)
            { //在播放区间内特效一定是启动的
                effInst.gameObject.SetActive(true);
            }

            if (force)
            {//强制同步当前播放时间
                effInst.CurrPlayTime = localTime;
            }

            if (isPlaying != speAnimClip.IsPlaying)
            {//同步播放状态
                if (speAnimClip.IsPlaying)
                {
                    effInst.CurrPlayTime = localTime;
                    effInst.Play();
                    isPlaying = true;
                }
                else
                {
                    effInst.Pause();
                    isPlaying = false;
                }
            }
        }
        else   //对于区间外的特效进行停止处理
        {
            if (isPlaying)
            {
                effInst.Stop();
                isPlaying = false;
            }

            if (effInst.gameObject.activeInHierarchy)
            {
                effInst.gameObject.SetActive(false);
            }
        }
    }
    protected override void _UpdateSpeedScale(float scale)
    {
        ISpecialEffectContext context = SpeAnimClip.Context;

        if (context == null || audioClip == null)
        {
            return;
        }

        context.SetSpeedScale(SpeAnimClip.gameObject, audioClip, scale);
    }
    public override void Stop()
    {
        ISpecialEffectContext context = SpeAnimClip.Context;

        if (context == null || audioClip == null)
        {
            return;
        }

        context.Stop(SpeAnimClip.gameObject, audioClip);
        isPlaying = false;
    }
 public virtual void Update(float currTime, ISpecialEffectContext context, bool force = false)
 {
 }
    public override void Update(float currTime, ISpecialEffectContext context, bool force = false)
    {
        if (context == null || audioClip == null)
        {
            return;
        }

        if (speAnimClip.IsKilled && !force)
        {//若特效被杀死
            if (!_OnKilled())
            {
                return;
            }
        }

        float localTime = _Trans2LocalTime(currTime);

#if UNITY_EDITOR
        if (Application.isPlaying)
        {
#endif

        if (_IsInPlayTimeInterval(currTime))
        {    //在播放区间内对特效进行启用播放
            if (isPlaying != SpeAnimClip.IsPlaying)
            {
                if (SpeAnimClip.IsPlaying)
                {
                    context.Play(SpeAnimClip.gameObject, audioClip, localTime);
                    isPlaying = true;
                }
                else
                {
                    context.Pause(SpeAnimClip.gameObject, audioClip);
                    isPlaying = false;
                }
            }
        }
        else
        {     //对于区间外的特效进行停止处理
            if (isPlaying)
            {
                context.Stop(SpeAnimClip.gameObject, audioClip);
                isPlaying = false;
            }
        }


#if UNITY_EDITOR
    }

    else
    {     //非播放模式下
        if (localTime > 0.0f && localTime <= Length)
        { //在播放区间内对特效进行启用播放
            if (!isAudioPlayed)
            {
                context.Play(SpeAnimClip.gameObject, audioClip, localTime);
                isAudioPlayed = true;
            }
        }
        else
        {
            if (isAudioPlayed)
            {
                context.Stop(SpeAnimClip.gameObject, audioClip);
                isAudioPlayed = false;
            }
        }
    }
#endif
    }