UniRx: Debug() 拡張メソッド

ObservableDebugExtensions.cs に Debug() 拡張メソッドが定義されています。 この拡張メソッドを使うと、OnNextOnCompleted などのイベント時にログが出力されるようになります。 (これはデバッグ機能として提供されており、DEBUG シンボルが定義されている場合にかぎり有効となります)

using System;
using UniRx;
using UniRx.Diagnostics;
using UnityEngine;

public class Main : MonoBehaviour
{
    void Start()
    {
        var s = Observable.Range(10, 3);
        s.Debug().Subscribe();
    }
}

実行結果です。

[22:32:55:471] OnSubscribe
[22:32:55:475] OnNext(10)
[22:32:55:477] OnNext(11)
[22:32:55:478] OnNext(12)
[22:32:55:479] OnCompleted()

これまでログを出力するときは、いつも以下のようなコードを書いていましたが、Debug() 拡張メソッドを使うと不要になりますね。

void Start()
{
  var s = Observable.Range(10, 3);
  s.Subscribe(e => Debug.Log("e: " + e), () => Debug.Log("OnCompleted"));
}