Exemple #1
0
        public virtual void InsertClip(Clip clip)
        {
            if (Clips.Any(c => c.Ordering == clip.Ordering))
            {
                throw new InvalidOperationException();
            }

            Clips.Add(clip);
        }
Exemple #2
0
 protected string GetNewAnimationName()
 {
     for (var i = Clips.Count + 1; i < 999; i++)
     {
         var animationName = "Anim " + i;
         if (!Clips.Any(c => c.AnimationName == animationName))
         {
             return(animationName);
         }
     }
     return(Guid.NewGuid().ToString());
 }
Exemple #3
0
 public void Stop()
 {
     _playQueuedAfterInterpolation = false;
     _isPlaying = false;
     if (Current == null)
     {
         return;
     }
     _unityAnimation.Stop();
     foreach (var clip in Clips)
     {
         if (clip.AnimationPattern)
         {
             clip.AnimationPattern.SetBoolParamValue("loopOnce", true);
         }
     }
     _blendingTimeLeft  = 0;
     _blendingDuration  = 0;
     _previousClip      = null;
     _nextAnimation     = null;
     _nextAnimationTime = 0;
     if (PlayedAnimation != null && PlayedAnimation != Current.AnimationName)
     {
         if (Clips.Any(c => c.AnimationName == PlayedAnimation))
         {
             ChangeAnimation(PlayedAnimation);
         }
         PlayedAnimation = null;
     }
     if (Time > Current.animationLength - 0.001f)
     {
         Time = Current.loop ? 0f : Current.animationLength;
     }
     else
     {
         Time = Time.Snap();
     }
     Sample();
 }