Ejemplo n.º 1
0
 public void UpdateSequencer(float deltaTime)
 {
     deltaTime *= this.playbackRate;
     if (this.playing)
     {
         this.runningTime += deltaTime;
         float num = this.runningTime;
         if (num <= 0f)
         {
             num = 0f;
         }
         if (num > this.Duration)
         {
             num = this.Duration;
         }
         this.BeforeUpdate(this, this.runningTime);
         USTimelineContainer[] array = this.TimelineContainers;
         for (int i = 0; i < array.Length; i++)
         {
             USTimelineContainer uSTimelineContainer = array[i];
             uSTimelineContainer.ProcessTimelines(num, this.PlaybackRate);
         }
         this.AfterUpdate(this, this.runningTime);
         bool flag = false;
         if (this.playbackRate > 0f && this.RunningTime >= this.duration)
         {
             flag = true;
         }
         if (this.playbackRate < 0f && this.RunningTime <= 0f)
         {
             flag = true;
         }
         if (flag)
         {
             if (this.isLoopingSequence)
             {
                 float num2 = 0f;
                 if (this.playbackRate > 0f && this.RunningTime >= this.Duration)
                 {
                     num2 = this.RunningTime - this.Duration;
                 }
                 if (this.playbackRate < 0f && this.RunningTime <= 0f)
                 {
                     num2 = this.Duration + this.RunningTime;
                 }
                 this.Stop();
                 this.runningTime  = num2;
                 this.previousTime = -1f;
                 this.Play();
                 this.UpdateSequencer(0f);
                 return;
             }
             if (this.isPingPongingSequence)
             {
                 if (this.playbackRate > 0f && this.RunningTime >= this.Duration)
                 {
                     this.runningTime = this.Duration + (this.Duration - this.RunningTime);
                 }
                 if (this.playbackRate < 0f && this.RunningTime <= 0f)
                 {
                     this.runningTime = -1f * this.RunningTime;
                 }
                 this.playbackRate *= -1f;
                 return;
             }
             this.playing = false;
             base.StopCoroutine("UpdateSequencerCoroutine");
             this.End();
         }
     }
     if (this.setSkipTime > 0f)
     {
         USTimelineContainer[] array2 = this.TimelineContainers;
         for (int j = 0; j < array2.Length; j++)
         {
             USTimelineContainer uSTimelineContainer2 = array2[j];
             uSTimelineContainer2.SkipTimelineTo(this.setSkipTime);
         }
         this.runningTime  = this.setSkipTime;
         this.previousTime = Time.time;
         this.setSkipTime  = -1f;
     }
 }