Guest User

Untitled

a guest
Oct 20th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. IEnumerator Cor1 () {
  2. yield return new WaitForSeconds (3);
  3. Debug.Log ("Cor1: waited 3 sec");
  4. yield return null;
  5. }
  6.  
  7. IEnumerator Cor2 () {
  8. yield return new WaitForSeconds (1);
  9. Debug.Log ("Cor2: waited 1 sec");
  10. yield return new WaitForSeconds (9);
  11. Debug.Log ("Cor2: waited 9 sec");
  12. yield return null;
  13. }
  14.  
  15. void DoCoroutineOnObservable () {
  16. var a = new Subject<Unit> ();
  17. var b = new Subject<Unit> ();
  18. var obs1 = a.Select (_ => Observable.FromCoroutine (Cor1));
  19. var obs2 = b.Select (_ => Observable.FromCoroutine (Cor2));
  20. Observable.Merge (obs1, obs2).Concat ().Subscribe ();
  21.  
  22. // 発行
  23. a.OnNext (Unit.Default);
  24. b.OnNext (Unit.Default);
  25. a.OnNext (Unit.Default);
  26. }
  27.  
  28. cor1: waited 3 sec
  29. cor2: waited 1 sec
  30. cor2: waited 9 sec
  31. cor1: waited 3 sec
  32.  
  33. async UniTask<Unit> Task1 () {
  34. await UniTask.Delay (3000); // note! Delayはミリ秒指定
  35. Debug.Log ("Task1: waited 3 sec");
  36. return Unit.Default;
  37. }
  38.  
  39. async UniTask<Unit> Task2 () {
  40. await UniTask.Delay (1000);
  41. Debug.Log ("Task2: waited 1 sec");
  42. await UniTask.Delay (9000);
  43. Debug.Log ("Task2: waited 9 sec");
  44. return Unit.Default;
  45. }
  46.  
  47. void DoUniTaskOnObservable () {
  48. // ストリームの構築
  49. var a = new Subject<Unit> ();
  50. var b = new Subject<Unit> ();
  51. var obs1 = a.Select (_ => Task1 ().ToObservable ());
  52. var obs2 = b.Select (_ => Task2 ().ToObservable ());
  53. Observable.Merge (obs1, obs2).Concat ().Subscribe ();
  54.  
  55. // 発行
  56. a.OnNext (Unit.Default);
  57. b.OnNext (Unit.Default);
  58. a.OnNext (Unit.Default);
  59. }
  60.  
  61. Task2: waited 1 sec
  62. Task1: waited 3 sec
  63. Task1: waited 3 sec
  64. Task2: waited 9 sec
Add Comment
Please, Sign In to add comment