2017년 8월 7일 월요일

UniRx Note2 - Observable.FromCoroutine

void TestFromCoroutine()
{
    // 5초 카운트하는 코루틴 스트림을 만듦
    Observable.FromCoroutine<int>(observer => GameTimerCoroutine(observer, 5))
        .Subscribe(t => Debug.Log(t));
}

// 초기 값에서 0까지 카운트하는 코루틴 
private IEnumerator GameTimerCoroutine(IObserver<int> observer, int initialCount)
{
    var current = initialCount;
    while (current > 0)
    {
        observer.OnNext(current--);
        yield return new WaitForSeconds(1);
    }
    observer.OnNext(0);
    observer.OnCompleted();
}

댓글 없음:

댓글 쓰기