レベルアップ通知処理をまとめた
This commit is contained in:
parent
4466337005
commit
87009ebb34
|
|
@ -85,10 +85,7 @@ public class CornField : MonoBehaviour
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
GameDataObserver.Instance.SceneCounter
|
HeartMeter.Instance.FulledHeart
|
||||||
.DistinctUntilChanged()
|
|
||||||
.CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled)
|
|
||||||
.Where(x => x)
|
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -100,10 +100,7 @@ public class KitchenManager : MonoBehaviour
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
GameDataObserver.Instance.SceneCounter
|
HeartMeter.Instance.FulledHeart
|
||||||
.DistinctUntilChanged()
|
|
||||||
.CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled)
|
|
||||||
.Where(x => x)
|
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -76,10 +76,7 @@ public class MarketManager : MonoBehaviour
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
GameDataObserver.Instance.SceneCounter
|
HeartMeter.Instance.FulledHeart
|
||||||
.DistinctUntilChanged()
|
|
||||||
.CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled)
|
|
||||||
.Where(x => x)
|
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -42,10 +42,7 @@ public class ProductManagement : MonoBehaviour
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
GameDataObserver.Instance.SceneCounter
|
HeartMeter.Instance.FulledHeart
|
||||||
.DistinctUntilChanged()
|
|
||||||
.CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled)
|
|
||||||
.Where(x => x)
|
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,7 @@ public class Shopping : MonoBehaviour
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
GameDataObserver.Instance.SceneCounter
|
HeartMeter.Instance.FulledHeart
|
||||||
.DistinctUntilChanged()
|
|
||||||
.CombineLatest(HeartMeter.Instance.FulledHeart, (count, fulled) => count == 1 && fulled)
|
|
||||||
.Where(x => x)
|
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||||
public IReadOnlyReactiveProperty<bool> UpdateMissionAchieved => updateMissionAchieved;
|
public IReadOnlyReactiveProperty<bool> UpdateMissionAchieved => updateMissionAchieved;
|
||||||
|
|
||||||
public IObservable<int> HeartObserver => heartObserver;
|
public IObservable<int> HeartObserver => heartObserver;
|
||||||
public IObservable<int> SceneCounter => sceneCounter;
|
public IObservable<int> SceneCounter => sceneCounter.DistinctUntilChanged();
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,9 @@ public class HeartMeter : SingletonMonoBehaviour<HeartMeter>
|
||||||
private readonly ReactiveProperty<float> viewHeartCount = new ReactiveProperty<float>();
|
private readonly ReactiveProperty<float> viewHeartCount = new ReactiveProperty<float>();
|
||||||
private readonly ReactiveProperty<int> shopLevel = new ReactiveProperty<int>();
|
private readonly ReactiveProperty<int> shopLevel = new ReactiveProperty<int>();
|
||||||
private readonly ReactiveProperty<bool> fulledHeart = new ReactiveProperty<bool>();
|
private readonly ReactiveProperty<bool> fulledHeart = new ReactiveProperty<bool>();
|
||||||
public IObservable<bool> FulledHeart => fulledHeart.DistinctUntilChanged();
|
public IObservable<bool> 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 minHeart;
|
||||||
private float maxHeart;
|
private float maxHeart;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue