宣伝待ちタイマー改善

This commit is contained in:
kimura 2021-12-14 13:40:36 +09:00
parent 9a3089a4f6
commit d7e9172635
1 changed files with 9 additions and 6 deletions

View File

@ -24,7 +24,7 @@ public class MarketManager : MonoBehaviour
private Market market;
List<ProductData> productDataList;
private readonly Subject<int> resetRefreshTimer = new Subject<int>();
private readonly Subject<Unit> resetRefreshTimer = new Subject<Unit>();
private readonly CompositeDisposable ShopClosedCompositeDisposable = new CompositeDisposable();
private void Start()
@ -67,7 +67,7 @@ public class MarketManager : MonoBehaviour
gameData.FinishTutorial();
GameDataManager.SaveGameData();
walkerMask.gameObject.SetActive(false);
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds);
resetRefreshTimer.OnNext(Unit.Default);
SetShopView(market.CurrentShopState.Value);
}).AddTo(controller).AddTo(this);
});
@ -118,14 +118,17 @@ public class MarketManager : MonoBehaviour
gameData.increaseCustomerTime = DateTime.UtcNow.AddSeconds(10).ToBinary();
#endif
GameDataManager.SaveGameData();
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds);
resetRefreshTimer.OnNext(Unit.Default);
});
}).AddTo(this);
// onNextをトリガーに実行
IDisposable timerDisposable = null;
resetRefreshTimer
.Select(_ => (int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds)
.Subscribe(time =>
{
// タイマーの更新処理
timerDisposable?.Dispose();
rewardButtonView.SetButtonActive(time <= 0);
rewardButtonView.SetTime(time);
@ -141,14 +144,14 @@ public class MarketManager : MonoBehaviour
}).AddTo(this);
}).AddTo(this);
var remaining = (int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds;
resetRefreshTimer.OnNext(remaining);
resetRefreshTimer.OnNext(Unit.Default);
// アプリ復帰時に残り時間更新
Observable.EveryApplicationPause()
.Where(pause => !pause)
.Subscribe(_ =>
{
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds);
resetRefreshTimer.OnNext(Unit.Default);
}).AddTo(this);
market.IsPromotion.Subscribe(active =>