本日は 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)