「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だけでる。