「Unity/UniRx/Subject」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
|||
| 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月13日 (水) 16: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だけでる。