45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
#pragma warning disable 0168
|
|
#pragma warning disable 0219
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using UnityEngine;
|
|
|
|
namespace UniRx.Examples
|
|
{
|
|
public class Sample07_OrchestratIEnumerator : MonoBehaviour
|
|
{
|
|
// two coroutines
|
|
IEnumerator AsyncA()
|
|
{
|
|
Debug.Log("a start");
|
|
yield return new WaitForSeconds(3);
|
|
Debug.Log("a end");
|
|
}
|
|
|
|
IEnumerator AsyncB()
|
|
{
|
|
Debug.Log("b start");
|
|
yield return new WaitForEndOfFrame();
|
|
Debug.Log("b end");
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
// after completed AsyncA, run AsyncB as continuous routine.
|
|
// UniRx expands SelectMany(IEnumerator) as SelectMany(IEnumerator.ToObservable())
|
|
var cancel = Observable.FromCoroutine(AsyncA)
|
|
.SelectMany(AsyncB)
|
|
.Subscribe();
|
|
|
|
// If you want to stop Coroutine(as cancel), call subscription.Dispose()
|
|
// cancel.Dispose();
|
|
}
|
|
}
|
|
}
|
|
|
|
#pragma warning restore 0219
|
|
#pragma warning restore 0168 |