facebook twitter hatena line email

Unity/UniRx/コールチン変換

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

コールチン変換

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