From d7e917263533e6a3f2bde4025f7c3b1b2b6e2a8b Mon Sep 17 00:00:00 2001 From: kimura Date: Tue, 14 Dec 2021 13:40:36 +0900 Subject: [PATCH] =?UTF-8?q?=E5=AE=A3=E4=BC=9D=E5=BE=85=E3=81=A1=E3=82=BF?= =?UTF-8?q?=E3=82=A4=E3=83=9E=E3=83=BC=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/marketing/Scripts/MarketManager.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index e3d1d266..24a1a9bc 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -24,7 +24,7 @@ public class MarketManager : MonoBehaviour private Market market; List productDataList; - private readonly Subject resetRefreshTimer = new Subject(); + private readonly Subject resetRefreshTimer = new Subject(); 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 =>