Beispiel #1
0
    public void UpdatePlay(float playback_time)
    {
        if (gameObject.activeInHierarchy == false)
        {
            return;
        }

        try
        {
            PlaybackTime = playback_time;

            if (m_PlayingActions.Count > 0)
            {
                for (int i = 0; i < m_PlayingActions.Count;)
                {
                    ICharacterAction action = m_PlayingActions[i];
                    if ((BattleBase.Instance == null || BattleBase.Instance.IsPause != ePauseType.Pause || action.IsPause == false) && action.Update(PlaybackTime) == false)
                    {
                        m_PlayingActions.RemoveAt(i);
                        if (action == MainAction)
                        {
                            MainAction = null;
                        }
                    }
                    else
                    {
                        ++i;
                    }
                }
            }

            if (m_AnimationAdoptor != null && IsUpdateAnimation)
            {
                m_AnimationAdoptor.Update(PlaybackTime, m_FreezeCount > 0);
            }
            Tween.UpdatePlay(PlaybackTime);

            UpdateParticles();
            if (Application.isPlaying == true && m_DefaultEffect != null && m_PlayingDefaultEffect == null)
            {
                m_PlayingDefaultEffect = PlayParticle(m_DefaultEffect);
            }
            else if (m_PlayingDefaultEffect != null && m_PlayingDefaultEffect.IsPlaying == true && m_PlayingDefaultEffect.IsFinish == false && CharacterAnimation.IsDeadEnd)
            {
                m_PlayingDefaultEffect.Finish();
            }
        }
        catch (System.Exception ex)
        {
            throw new System.Exception(string.Format("[{0}] {1}", gameObject.name, ex.Message), ex);
        }
    }
Beispiel #2
0
    public override void Cancel(bool stopAll)
    {
        base.Cancel(stopAll);

        if (stopAll || IsStarted == false)
        {
            Finish();
        }
        else if (IsCancelParticle && particle_system != null)
        {
            particle_system.Finish();
        }
    }