private void evaluateAtTime(float time) { if (!ensureInterpolator()) { throw new System.InvalidOperationException(string.Format("No interpolator for type '{0}' has been assigned", typeof(T).Name)); } var actualEndValue = !EndIsOffset ? EndValue : Interpolator.Add(StartValue, this.EndValue); if (this.PlayDirection == TweenDirection.Reverse) { CurrentValue = this.Interpolator.Interpolate(actualEndValue, StartValue, time); } else { CurrentValue = this.Interpolator.Interpolate(StartValue, actualEndValue, time); } if (this.Execute != null) { this.Execute(CurrentValue); } }