From 81b2e56b2fbfa4632b79ac5c46a8490491f29aa5 Mon Sep 17 00:00:00 2001 From: kimura Date: Tue, 19 Apr 2022 17:47:13 +0900 Subject: [PATCH] =?UTF-8?q?=E7=A9=BA=E3=81=AE=E3=82=BF=E3=83=B3=E3=82=AF?= =?UTF-8?q?=E5=85=A5=E3=82=8C=E6=9B=BF=E3=81=88=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../marketing/Scripts/ProductManagement.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs index e00700c0..62d99d4b 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using MyGame.Scripts; using UniRx; using UnityEngine; @@ -188,10 +187,10 @@ public class ProductManagement : MonoBehaviour }).AddTo(this); // タンククリック検知 - Observable.Merge(tankList.Select(tankView => tankView.TankClickObservable.Select(_ => tankView))) + var tankClickStream = tankList.Select(tankView => tankView.TankClickObservable.Select(_ => tankView)).Merge(); + tankClickStream .Where(tankView => tankView.State.Value != TankState.Lock) .Where(tankView => tankView.State.Value != TankState.Unavailable) - .Where(tankView => gameData.StorageTanks[tankView.TankNumber - 1].Stock > 0) .Subscribe(tankView => { switch (state.Value) @@ -204,9 +203,13 @@ public class ProductManagement : MonoBehaviour case ManagementState.Replacing: break; case ManagementState.Tasting: + var tankData = gameData.StorageTanks[tankView.TankNumber - 1]; + if (tankData.IsEmpty) + { + break; + } ClearSelectedTank(tankList); tankView.SetState(TankState.Selected); - var tankData = gameData.StorageTanks[tankView.TankNumber - 1]; selectedTank.Value = (tankView.TankNumber, productList.FirstOrDefault(data => data.id == tankData.FlavorId)); break; default: @@ -215,10 +218,7 @@ public class ProductManagement : MonoBehaviour }).AddTo(this); // 2連続でクリックされたViewがまとめて取得できるストリーム - var replacingObservable = Observable.Merge(tankList.Select(x => x.TankClickObservable.Select(_ => x))) - .Where(x => x.State.Value != TankState.Lock) - .Where(x => x.State.Value != TankState.Unavailable) - .Where(tankView => gameData.StorageTanks[tankView.TankNumber - 1].Stock > 0) + var replacingObservable = tankClickStream .TakeWhile(_ => state.Value != ManagementState.Tasting) .Pairwise(); // タンク入れ替え