回答編集履歴

2

文章内のコードにマークダウンを付加

2018/01/26 22:09

投稿

Bongo
Bongo

スコア10807

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のストリームに流れる値についての理解が誤っていたため修正

2018/01/26 22:09

投稿

Bongo
Bongo

スコア10807

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`のまま書き換えないようにし、ストリームに流れてくる経過時間が`time`未満の間テイクして`DiscountReadingTime`を実行する。
203
+ `time`は初期値`5.0f`のまま書き換えないようにし、ストリームに流れてくるプッシュ回数が`time`未満の間テイクして`DiscountReadingTime`を実行する。
204
-
204
+
205
- `DiscountReadingTime`は引数として経過時間を受け取れるようにし、残り時間に換算して`remainingTime`に表示する。
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(t => t < time)
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