private static IObservable <Unit> DelayInternal(float duration, IScheduler scheduler) { return(Observable .Defer(() => Observable.Return(scheduler.Now)) .ContinueWith(start => RxExtensions.FromMicroCoroutineWithInitialValue <Unit>((observer, token) => DelayCoroutine(start, duration, scheduler, observer, token), Unit.Default) )); }
private static IObservable <float> PlayInternal(IAnimator animator, float distance, IScheduler scheduler) { return(Observable .Defer(() => Observable.Return(scheduler.Now)) .ContinueWith(start => RxExtensions.FromMicroCoroutineWithInitialValue((observer, token) => AnimationCoroutine(animator, start, distance, scheduler, observer, token), animator.CalcPosition(scheduler.Now - start, distance)) )); }