UniRx: 時間を(複数)指定してイベント発行
下のコードは、1 秒、3 秒、4 秒後にイベントを発行するサンプルです。
using System; using System.Linq; using UniRx; using UniRx.Diagnostics; using UnityEngine; public class Main : MonoBehaviour { void Start() { var fireTimes = new[] { 1, 3, 4 }; // 1 秒, 3 秒, 4 秒後にイベント発行 var s = fireTimes.Select(e => Observable.Timer(TimeSpan.FromSeconds(e))).Merge(); s.Debug().Subscribe(); } }
実行結果です。
[12:17:05:094] OnSubscribe [12:17:06:302] OnNext(0) [12:17:08:287] OnNext(0) [12:17:09:297] OnNext(0) [12:17:09:300] OnCompleted()
Merge オペレータ