MRが楽しい

MRやVRについて学習したことを書き残す

UniRxのEveryUpdateを使ってUnityの毎フレームで処理を実行する

本日は UniRx の小ネタ枠です。
UniRxのEveryUpdateを使ってUnityの毎フレームで処理を実行する方法についてです。

前提条件

UniRx の環境構築手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

Observable.EveryUpdate

UniRx の Observable.EveryUpdate を利用すると Unity の毎フレームの Update タイミングで処理を実行できます。
MonoBehaviour を継承しないクラスで毎フレームの処理を実装したい場合に役立ちます。

サンプルスクリプト

以下の Observable.EveryUpdate で毎フレームにログ出力を行うサンプルスクリプトを作成しました。
・ObservableTest.cs

using UniRx;
using UnityEngine;

public class ObservableTest : MonoBehaviour
{
    void Start()
    {
        var everyUpdateTest = new EveryUpdateTest();
    }
}

public class EveryUpdateTest
{
    public EveryUpdateTest()
    {
        Observable.EveryUpdate()
            .Subscribe(_ =>
                {
                    Debug.Log("EveryUpdate");
                }
            );
    }
}

適当なオブジェクトにサンプルスクリプトを設定してシーンを再生します。
以下の通り、毎フレームにログ出力を行えます。
(画像差し込み_03)