「Unity/UniRx/Subject」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→UniRxを使わない場合) |
|||
行18: | 行18: | ||
==UniRxを使わない場合== | ==UniRxを使わない場合== | ||
− | + | 上記の処理は、このように書く | |
<pre> | <pre> | ||
using System; | using System; | ||
行29: | 行29: | ||
参考:https://sunagimo-app.hatenablog.com/entry/2019/03/14/032357 | 参考:https://sunagimo-app.hatenablog.com/entry/2019/03/14/032357 | ||
+ | |||
+ | ==Whereを使う== | ||
+ | <pre> | ||
+ | Subject<string> subject = new Subject<string>(); | ||
+ | subject | ||
+ | .Where( | ||
+ | m => m == "world" | ||
+ | ) | ||
+ | .Subscribe( | ||
+ | message => Debug.Log("msg1:" + message) | ||
+ | ); | ||
+ | subject.OnNext("hello"); | ||
+ | subject.OnNext("world"); | ||
+ | </pre> | ||
+ | worldだけでる。 |
2021年10月14日 (木) 01:48時点における版
サンプル
using UniRx; Subject<string> subject = new Subject<string>(); // イベント登録 subject.Subscribe(message => Debug.Log("msg1:" + message)); // イベント発行 subject.OnNext("hello");
ログ
msg1:hello
参考:https://qiita.com/toRisouP/items/2f1643e344c741dd94f8
UniRxを使わない場合
上記の処理は、このように書く
using System; Action<string> OnMsg = delegate (string msg) { }; OnMsg += (msg) => { Debug.Log("msg1:" + msg); }; OnMsg("hello");
参考:https://sunagimo-app.hatenablog.com/entry/2019/03/14/032357
Whereを使う
Subject<string> subject = new Subject<string>(); subject .Where( m => m == "world" ) .Subscribe( message => Debug.Log("msg1:" + message) ); subject.OnNext("hello"); subject.OnNext("world");
worldだけでる。