public override void Play()
 {
     foreach (var transition in _transitions)
     {
         transition.Reset();
         AnimationSystem.Attach(transition);
     }
 }
 private void PlayNext()
 {
     if (_queue.Any())
     {
         var transition = _queue.Dequeue();
         transition.Reset();
         transition.TransitionComplete += (sender, args) => PlayNext();
         AnimationSystem.Attach(transition);
     }
 }
 internal SequenceAnimation(AnimationSystem animationSystem, T target)
     : base(animationSystem, target)
 {
     _queue = new Queue <Transition>();
 }
 public ParallelAnimation(AnimationSystem animationSystem, T target)
     : base(animationSystem, target)
 {
     _transitions = new List <Transition>();
 }