「Unity/UniRx/コールチン変換」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==コールチン変換== ToYieldInstructionを使えば、Observableをコールチンに変換できる。 <pre> using System.Collections; using UnityEngine; using UniR...」) |
(→コールチン変換) |
||
行6: | 行6: | ||
using UniRx; | using UniRx; | ||
using UnityEngine.UI; | using UnityEngine.UI; | ||
− | public class | + | |
+ | public class CoroutineScene : MonoBehaviour | ||
{ | { | ||
− | + | Button button; | |
− | + | void Start() | |
{ | { | ||
− | + | button = GameObject.Find("Button").GetComponent<Button>(); | |
+ | Exec(); | ||
} | } | ||
− | + | async void Exec() | |
{ | { | ||
− | yield return | + | await StartCoroutine(ExampleCoroutine()); |
+ | Debug.Log("end"); | ||
+ | } | ||
+ | IEnumerator ExampleCoroutine() | ||
+ | { | ||
+ | yield return button | ||
.OnClickAsObservable() | .OnClickAsObservable() | ||
.FirstOrDefault() | .FirstOrDefault() |
2021年12月16日 (木) 17:40時点における版
コールチン変換
ToYieldInstructionを使えば、Observableをコールチンに変換できる。
using System.Collections; using UnityEngine; using UniRx; using UnityEngine.UI; public class CoroutineScene : MonoBehaviour { Button button; void Start() { button = GameObject.Find("Button").GetComponent<Button>(); Exec(); } async void Exec() { await StartCoroutine(ExampleCoroutine()); Debug.Log("end"); } IEnumerator ExampleCoroutine() { yield return button .OnClickAsObservable() .FirstOrDefault() .ToYieldInstruction(); } }