示例#1
0
 public void Update(float absoluteTime)
 {
     if (!Enabled)
     {
         this.absoluteTime  = absoluteTime;
         PeriodRelativeTime = 0.0f;
         return;
     }
     PeriodRelativeTime = absoluteTime - this.absoluteTime;
     if (PeriodRelativeTime > Interval)
     {
         PeriodElapsed?.Invoke(this, absoluteTime);
         this.absoluteTime  = absoluteTime;
         PeriodRelativeTime = 0.0f;
         ++PeriodElapsedCount;
     }
 }
示例#2
0
 /// <summary>
 /// Updates the specified absolute time.
 /// This method is responsible for calling the <see cref="PeriodElapsed"/> callback.
 /// This method has to be called at least once per frame to have frame exact callback evaluation.
 /// </summary>
 /// <param name="absoluteTime">The current absolute time.</param>
 public void Update(float absoluteTime)
 {
     if (!absoluteStartTime.HasValue)
     {
         absoluteStartTime = absoluteTime;
     }
     if (!Enabled)
     {
         absoluteStartTime  = absoluteTime;
         PeriodRelativeTime = 0.0f;
         return;
     }
     PeriodRelativeTime = absoluteTime - absoluteStartTime.Value;
     if (PeriodRelativeTime > Period)
     {
         PeriodElapsed?.Invoke(this, absoluteTime);
         absoluteStartTime  = absoluteTime;
         PeriodRelativeTime = 0.0f;
         ++PeriodElapsedCount;
     }
 }