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/GameDataManager.cs b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs index 77487ecf..0377bed2 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs @@ -312,7 +312,9 @@ public sealed class GameData { public void MoveAllWaitValue() { +#if UNITY_EDITOR Debug.Log($"WaitAddValue:{WaitAddCoin},{WaitAddHeart}"); +#endif MoveCoin(WaitAddCoin); MoveHeart(WaitAddHeart); } 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;