From 3deee94349c0978b5f8f25ffc3834740a386ed70 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 13 May 2022 13:34:27 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=9E=E3=82=A4?= =?UTF-8?q?=E3=82=BA=E6=A9=9F=E8=83=BD=E3=82=A2=E3=82=A4=E3=83=86=E3=83=A0?= =?UTF-8?q?=E9=81=B8=E6=8A=9E=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/marketing/Scripts/ShopCustomize.cs | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs index b6fde61c..0dd445ab 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs @@ -38,38 +38,33 @@ namespace MyGame.Scenes.marketing.Scripts ShopCustomizeItem selectedItem = null; foreach (var customizeData in list) { + var selectSubject = new Subject().AddTo(this); var item = customizeSelector.GenerateItem(category); item.SetData(customizeData); - // 現在設定しているのアイテムを選択 - if (customizeData.id == selectedId) - { - selectedItem = item; - item.SetState(ShopCustomizeItemState.Selected); - } - else if (gameData.ShopCustomizeMyItems.Contains(customizeData.id)) + if (gameData.ShopCustomizeMyItems.Contains(customizeData.id)) { item.SetState(ShopCustomizeItemState.Purchased); } - else if (gameData.ShopCustomizeLevel > customizeData.level) - { - item.SetState(ShopCustomizeItemState.Lock); - } - else + else if (gameData.ShopCustomizeLevel >= customizeData.level) { item.SetState(ShopCustomizeItemState.Unlock); } + else + { + item.SetState(ShopCustomizeItemState.Lock); + } - item.SelectObservable.Subscribe(_ => + item.SelectObservable.Merge(selectSubject).Subscribe(_ => { if (item != selectedItem) { - selectedItem.SetState(ShopCustomizeItemState.Purchased); + selectedItem.SetState(ShopCustomizeItemState.Purchased); + selectedItem = item; } - selectedItem = item; item.SetState(ShopCustomizeItemState.Selected); gameData.ShopCustomizeSettings.SetSetting(customizeData); - // marketView.SetItem(customizeData); + marketView.SetItem(customizeData); }).AddTo(this); item.DetailObservable.Subscribe(_ => { @@ -81,9 +76,16 @@ namespace MyGame.Scenes.marketing.Scripts ShopCustomizePurchaseDialog.ShowDialog(customizeData, false, () => { PurchaseItem(customizeData); - item.SetState(ShopCustomizeItemState.Selected); + selectSubject.OnNext(Unit.Default); }); }).AddTo(this); + + // 現在設定しているのアイテムを選択 + if (customizeData.id == selectedId) + { + selectedItem = item; + selectSubject.OnNext(Unit.Default); + } } } }