UnityEvent.AsObservable
1. 概要
UnityEvent.AsObservable は、Unity の UnityEvent / UnityEvent<T> / UnityEvent<T0, T1> / UnityEvent<T0, T1, T2> / UnityEvent<T0, T1, T2, T3> を Observable に変換する R3.Unity のファクトリメソッドです。
2. シグネチャ
csharp
public static Observable<Unit> AsObservable(
this UnityEvent unityEvent,
CancellationToken cancellationToken = default)
public static Observable<T> AsObservable<T>(
this UnityEvent<T> unityEvent,
CancellationToken cancellationToken = default)
public static Observable<(T0 Arg0, T1 Arg1)> AsObservable<T0, T1>(
this UnityEvent<T0, T1> unityEvent,
CancellationToken cancellationToken = default)
public static Observable<(T0 Arg0, T1 Arg1, T2 Arg2)> AsObservable<T0, T1, T2>(
this UnityEvent<T0, T1, T2> unityEvent,
CancellationToken cancellationToken = default)
public static Observable<(T0 Arg0, T1 Arg1, T2 Arg2, T3 Arg3)> AsObservable<T0, T1, T2, T3>(
this UnityEvent<T0, T1, T2, T3> unityEvent,
CancellationToken cancellationToken = default)3. マーブルダイアグラム
UnityEvent が発火するたびに、対応する引数が Observable の値として発行されます。
4. サンプルコード
csharp
button.onClick
.AsObservable()
.Subscribe(_ => Debug.Log("clicked"))
.AddTo(this);
slider.onValueChanged
.AsObservable()
.Subscribe(value => Debug.Log(value))
.AddTo(this);