Esempio n. 1
0
 private void StartAnimation(AnimEntryConfig p_newAnim)
 {
     if (p_newAnim.FadeMode == FadeModeType.CrossFade)
     {
         animation.CrossFade(p_newAnim.Clip.name, p_newAnim.fadeInTime);
     }
     else
     {
         animation.Play(p_newAnim.Clip.name, PlayMode.StopAll);
     }
 }
Esempio n. 2
0
        private void Update()
        {
            Animation animation = this.animation;

            if (baseName == null)
            {
                baseName = BaseAnim.Clip.name;
            }
            if (animation.isPlaying)
            {
                if (animation.IsPlaying(baseName))
                {
                    m_randAnimTimer -= Time.deltaTime;
                    if (m_randAnimTimer < 0f)
                    {
                        m_randAnimTimer = GetNewAnimTimer();
                        m_currentAnim   = GetRandomAnimation();
                        StartAnimation((m_currentAnim != -1) ? CurrentAnim : BaseAnim);
                    }
                }
                else
                {
                    if (lastConfig != CurrentAnim)
                    {
                        lastConfig = CurrentAnim;
                        lastState  = animation[lastConfig.Clip.name];
                    }
                    if (BaseAnim.FadeMode == FadeModeType.CrossFade)
                    {
                        if (lastState.time > lastState.length - CurrentAnim.fadeOutTime)
                        {
                            animation.CrossFade(baseName, BaseAnim.fadeInTime);
                        }
                    }
                    else if (lastState.time + Time.deltaTime > lastState.length)
                    {
                        animation.Play(baseName, PlayMode.StopAll);
                    }
                }
            }
            else
            {
                animation.Play(baseName);
            }
        }