facebook twitter hatena line email

「Unity/UniRx/コルーチン変換」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(Admin がページ「Unity/UniRx/コールチン変換」を「Unity/UniRx/コルーチン変換」に、リダイレクトを残さずに移動しました)
 
(相違点なし)

2025年8月19日 (火) 13:08時点における最新版

コルーチン変換

ToYieldInstructionを使えば、Observableをコルーチンに変換できる。ボタンを押したらendがログに出るサンプル

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();
    }
}

参考: https://light11.hatenadiary.com/entry/2018/11/05/230944