From 87009ebb349ad702b093f9554a5581d8f1243c16 Mon Sep 17 00:00:00 2001 From: kimura Date: Wed, 1 Dec 2021 12:58:05 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AC=E3=83=99=E3=83=AB=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97=E9=80=9A=E7=9F=A5=E5=87=A6=E7=90=86=E3=82=92=E3=81=BE?= =?UTF-8?q?=E3=81=A8=E3=82=81=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs | 5 +---- popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs | 5 +---- .../Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs | 5 +---- .../MyGame/Scenes/marketing/Scripts/ProductManagement.cs | 5 +---- popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs | 5 +---- popcorn/Assets/MyGame/Scripts/GameDataObserver.cs | 2 +- popcorn/Assets/MyGame/Scripts/HeartMeter.cs | 4 +++- 7 files changed, 9 insertions(+), 22 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index 8b273e08..1d420c31 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -85,10 +85,7 @@ public class CornField : MonoBehaviour HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); // ハートゲージがフルかつダイアログが開いていない場合レベルアップ - GameDataObserver.Instance.SceneCounter - .DistinctUntilChanged() - .CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled) - .Where(x => x) + HeartMeter.Instance.FulledHeart .DelaySubscription(TimeSpan.FromSeconds(.4f)) .Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index 059d6a39..269ad118 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -100,10 +100,7 @@ public class KitchenManager : MonoBehaviour HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); // ハートゲージがフルかつダイアログが開いていない場合レベルアップ - GameDataObserver.Instance.SceneCounter - .DistinctUntilChanged() - .CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled) - .Where(x => x) + HeartMeter.Instance.FulledHeart .DelaySubscription(TimeSpan.FromSeconds(.4f)) .Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index 6d09a24e..a3742aeb 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -76,10 +76,7 @@ public class MarketManager : MonoBehaviour HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); // ハートゲージがフルかつダイアログが開いていない場合レベルアップ - GameDataObserver.Instance.SceneCounter - .DistinctUntilChanged() - .CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled) - .Where(x => x) + HeartMeter.Instance.FulledHeart .DelaySubscription(TimeSpan.FromSeconds(.4f)) .Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs index 674995e1..45abdcdb 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs @@ -42,10 +42,7 @@ public class ProductManagement : MonoBehaviour HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); // ハートゲージがフルかつダイアログが開いていない場合レベルアップ - GameDataObserver.Instance.SceneCounter - .DistinctUntilChanged() - .CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled) - .Where(x => x) + HeartMeter.Instance.FulledHeart .DelaySubscription(TimeSpan.FromSeconds(.4f)) .Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs index 15a1f73e..8276c78b 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs @@ -21,10 +21,7 @@ public class Shopping : MonoBehaviour HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); // ハートゲージがフルかつダイアログが開いていない場合レベルアップ - GameDataObserver.Instance.SceneCounter - .DistinctUntilChanged() - .CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled) - .Where(x => x) + HeartMeter.Instance.FulledHeart .DelaySubscription(TimeSpan.FromSeconds(.4f)) .Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs b/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs index 5516f471..517f825b 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs @@ -24,7 +24,7 @@ public class GameDataObserver : SingletonMonoBehaviour public IReadOnlyReactiveProperty UpdateMissionAchieved => updateMissionAchieved; public IObservable HeartObserver => heartObserver; - public IObservable SceneCounter => sceneCounter; + public IObservable SceneCounter => sceneCounter.DistinctUntilChanged(); private void Start() { diff --git a/popcorn/Assets/MyGame/Scripts/HeartMeter.cs b/popcorn/Assets/MyGame/Scripts/HeartMeter.cs index 37418a60..413c6c32 100644 --- a/popcorn/Assets/MyGame/Scripts/HeartMeter.cs +++ b/popcorn/Assets/MyGame/Scripts/HeartMeter.cs @@ -22,7 +22,9 @@ public class HeartMeter : SingletonMonoBehaviour private readonly ReactiveProperty viewHeartCount = new ReactiveProperty(); private readonly ReactiveProperty shopLevel = new ReactiveProperty(); private readonly ReactiveProperty fulledHeart = new ReactiveProperty(); - public IObservable FulledHeart => fulledHeart.DistinctUntilChanged(); + public IObservable FulledHeart => fulledHeart.DistinctUntilChanged() + .CombineLatest(GameDataObserver.Instance.SceneCounter, (fulled, count) => count == 1 && fulled) + .Where(x => x && UnityEngine.SceneManagement.SceneManager.sceneCount == 1); // シーン数をもう一度チェック private float minHeart; private float maxHeart;