回答編集履歴
2
文章内のコードにマークダウンを付加
test
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
|
83
83
|
案1:
|
84
84
|
|
85
|
-
TakeWhileをやめて、time > 0でフィルタリングするだけにし、ストリームを止めないようにする。
|
85
|
+
`TakeWhile`をやめて、`time > 0`でフィルタリングするだけにし、ストリームを止めないようにする。
|
86
86
|
|
87
87
|
```C#
|
88
88
|
|
1
Intervalのストリームに流れる値についての理解が誤っていたため修正
test
CHANGED
@@ -200,9 +200,9 @@
|
|
200
200
|
|
201
201
|
案2をベースとしつつ、イベントストリームを`UpdateAsObservable`から1秒間隔の`Interval`に置き換える(参考: [UniRxのシンプルなサンプル その9(TimerとInterval 一定時間後に実行) - Qiita](https://qiita.com/Marimoiro/items/a72b60315c797c19a27c))。
|
202
202
|
|
203
|
-
`time`は初期値`5.0f`のまま書き換えないようにし、ストリームに流れてくる
|
203
|
+
`time`は初期値`5.0f`のまま書き換えないようにし、ストリームに流れてくるプッシュ回数が`time`未満の間テイクして`DiscountReadingTime`を実行する。
|
204
|
-
|
204
|
+
|
205
|
-
`DiscountReadingTime`は引数として
|
205
|
+
`DiscountReadingTime`は引数としてプッシュ回数を受け取れるようにし、残り時間に換算して`remainingTime`に表示する。
|
206
206
|
|
207
207
|
案2と同様、ストリーム完了時に`EndReading`を実行する。
|
208
208
|
|
@@ -242,7 +242,7 @@
|
|
242
242
|
|
243
243
|
Observable.Interval(TimeSpan.FromSeconds(1))
|
244
244
|
|
245
|
-
.TakeWhile(
|
245
|
+
.TakeWhile(i => i < time)
|
246
246
|
|
247
247
|
.Subscribe(DiscountReadingTime, EndReading);
|
248
248
|
|
@@ -252,11 +252,11 @@
|
|
252
252
|
|
253
253
|
// Readメソッドが呼ばれることでUnirxにより走るメソッド
|
254
254
|
|
255
|
-
void DiscountReadingTime(long t)
|
255
|
+
void DiscountReadingTime(long eventIndex)
|
256
|
-
|
256
|
+
|
257
|
-
{
|
257
|
+
{
|
258
|
-
|
258
|
+
|
259
|
-
remainingTime.text = ((int)(time - (t + 1))).ToString();
|
259
|
+
remainingTime.text = ((int)(time - (eventIndex + 1))).ToString();
|
260
260
|
|
261
261
|
}
|
262
262
|
|