時間ベース(Time)
時間やフレームを基準にシーケンスを生成するファクトリメソッドをまとめています。実時間ベース(TimeProvider)とフレームベース(FrameProvider)の両方をカバーします。
API 一覧
| API | 概要 |
|---|---|
| Timer | 指定時間後に値を発行する(繰り返しも可) |
| TimerFrame | 指定フレーム後に値を発行する(繰り返しも可) |
| Interval | 一定間隔で値を繰り返し発行する |
| IntervalFrame | 一定フレーム間隔で値を繰り返し発行する |
| EveryUpdate | 毎フレーム値を発行する |
| NextFrame | 次のフレームで値を発行して完了する |
| Yield | 次のタイムステップで値を発行して完了する |
| YieldFrame | 次のフレームで値を発行して完了する |
使い分けガイド
一定時間後に 1 回だけ値を発行したい
→ Timer(TimeSpan または DateTimeOffset で遅延を指定)
一定フレーム後に 1 回だけ値を発行したい
→ TimerFrame(フレーム数で遅延を指定)
一定時間間隔で繰り返し発行したい
→ Interval(初回遅延 = 周期)、または Timer に period を渡す(初回遅延と周期を個別に設定可能)
一定フレーム間隔で繰り返し発行したい
→ IntervalFrame、または TimerFrame に periodFrame を渡す
毎フレーム値を発行し続けたい
→ EveryUpdate(ゲームループの Update 相当)
次のフレームで 1 回だけ発行して完了したい
→ NextFrame または YieldFrame(どちらも次フレームで Unit を発行して完了)
次のタイムステップで 1 回だけ発行して完了したい
→ Yield(TimeProvider ベースの遅延)
実時間ベース vs フレームベース
| 実時間(TimeProvider) | フレーム(FrameProvider) |
|---|---|
| Timer | TimerFrame |
| Interval | IntervalFrame |
| Yield | YieldFrame / NextFrame |
| — | EveryUpdate |
サーバーサイドやコンソールアプリなど、フレームの概念がない環境では実時間ベースの API を使用してください。Unity などゲームエンジン上ではフレームベースの API が自然な選択になります。