UniRx: Hot と Cold (2)
UniRx: Hot と Cold (1) - C#練習日記 の続きです。63 of 115 からです。
Cold な Observable は分岐できない
Cold な Observable は Observer をひとつしか持てません。
using System; using UniRx; using UnityEngine; public class Main : MonoBehaviour { void Start() { var s = Observable.Range(1, 3) .Do(e => Debug.Log(e)); s.Subscribe(); // 1 本目のストリーム s.Subscribe(); // 2 本目のストリーム } }
実行結果です。
1 // 1 本目のストリーム 2 3 1 // 2 本目のストリーム 2 3
このようにストリーム自体が 2 本になります。
Hot な Observable は分岐できる
Hot な Observable は Observer は複数持てます。
using System; using UniRx; using UnityEngine; public class Main : MonoBehaviour { void Start() { var s = Observable.Range(1, 3) .Do(e => Debug.Log(e)) .Publish(); s.Subscribe(); s.Subscribe(); s.Connect(); } }
実行結果です。
1 // ストリームは 1 本のみ 2 3