オペレーター
R3 のオペレーターは、Observable<T> のデータフローを加工・制御するための拡張メソッド群です。上流から流れてきた値を変換、フィルタリング、結合、分割し、下流へ届けます。
カテゴリ一覧
変換
上流の値を別の値や形へ変換するオペレーター。Select、SelectMany、Scan など。
フィルタリング
上流の値のうち条件に合うものだけを通す、または一部だけを取り出すオペレーター。Where、Distinct、Take、Skip など。
結合
複数の Observable を組み合わせる、合流する、順序づけるオペレーター。CombineLatest、Merge、Zip、Switch など。
分割・バッファリング
上流の値を配列やまとまりにする、または隣接値を組にするオペレーター。Chunk、ChunkFrame、Pairwise など。
時間・フレーム制御
時間、フレーム、発行間隔、遅延、タイムアウトに関わるオペレーター。Debounce、ThrottleFirst、Delay、Timeout など。
エラー処理
エラー通知や OnErrorResume の扱いを変えるオペレーター。Catch、IgnoreOnErrorResume、OnErrorResumeAsFailure。
集約・Task 変換
Observable シーケンスを購読して処理し、その結果を Task、コレクション、単一値などとして取得する処理。FirstAsync、ToArrayAsync、AggregateAsync など。
購読・共有・スレッド制御
購読タイミング、通知先、共有、同期、ConnectableObservable に関わるオペレーター。Share、Publish、ObserveOn など。
Unity
R3.Unity が提供する Unity メインスレッド、GameObject ライフサイクル、UI 反映に関わる API。ObserveOnMainThread、AddTo、SubscribeToText など。
デバッグ・副作用
値を変えずに副作用を挟む、または購読中の観測を助けるオペレーター。Do、Index、Append、Prepend など。
用途別の選び方
| やりたいこと | 代表オペレーター |
|---|---|
| 値を別の型に変換したい | Select、Cast |
| 条件に合う値だけ流したい | Where、DistinctUntilChanged |
| 最初の N 件だけ欲しい | Take |
| 最後の N 件だけ欲しい | TakeLast |
| 複数の Observable を合成したい | CombineLatest、Merge、Zip |
| 値をまとめて配列で受け取りたい | Chunk、ChunkFrame |
| 連打を抑制したい | ThrottleFirst、Debounce |
| エラー時に別の Observable へ切り替えたい | Catch |
| 結果を1つの値として待ちたい | FirstAsync、ToArrayAsync |
| 複数の購読者で値を共有したい | Share、Publish |
| デバッグ用にログを挟みたい | Do |
| Unity のメインスレッドや GameObject の寿命に連動させたい | ObserveOnMainThread、AddTo |