private static IObservable <Unit> SleepInternal(float duration, IScheduler scheduler) { return(Observable .Defer(() => Observable.Return(scheduler.Now)) .ContinueWith(start => ObservableEx.FromMicroCoroutineWithInitialValue((observer, token) => DelayCoroutine(start, duration, scheduler, observer, token), Unit.Default) )); }
private static IObservable <float> PlayInternal(ITween tween, float distance, IScheduler scheduler) { return(Observable .Defer(() => Observable.Return(scheduler.Now)) .ContinueWith(start => ObservableEx.FromMicroCoroutineWithInitialValue((observer, token) => TweenCoroutine(tween, start, distance, scheduler, observer, token), tween.CalculatePosition(scheduler.Now - start, distance)) )); }