Unity・3DCG技術ブログ

TAもどきによるUnity・3DCGに関する記事をアップします。

UniRxでUpdateをObservableにする

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            Debug.Log("Hoge");
        }
    }
}

というスクリプトがあるとします。マウスの左クリックで Hoge と表示します。
UniRxを使用することで

using UnityEngine;
using UniRx;
using UniRx.Triggers;

public class NewBehaviourScript : MonoBehaviour {

    void Start () {
        this.UpdateAsObservable()
            .Where(t => Input.GetMouseButtonDown(0)) // <=Whereによるフィルタ
            .Subscribe(_ => Debug.Log("Hoge"));
    }

と書くことができます。
UpdateとIf文を消すことができ、簡潔に書けていますね。