コード整理

This commit is contained in:
kimura 2021-09-13 09:51:14 +09:00
parent 96cc78c671
commit 7d770e166c
2 changed files with 11 additions and 10 deletions

View File

@ -46,15 +46,7 @@ public class ShopListView : MonoBehaviour
index = tabs.Count; index = tabs.Count;
tabs.Add((tabCategory, Instantiate(scrollRect.content, scrollRect.content.parent))); tabs.Add((tabCategory, Instantiate(scrollRect.content, scrollRect.content.parent)));
} }
var itemView = Instantiate(itemViewPrefab, tabs[index].content); return Instantiate(itemViewPrefab, tabs[index].content);
itemView.SetData(shopData);
// show detail view
itemView.DetailButtonObservable.Subscribe(_ =>
{
LocalCacheManager.Save(ShopItemDetailView.ItemDetailTag, shopData);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ShoppingExplanation);
}).AddTo(itemView);
return itemView;
} }
private ItemCategory GetTabCategory(ItemCategory category) private ItemCategory GetTabCategory(ItemCategory category)

View File

@ -9,18 +9,21 @@ public class Shopping : MonoBehaviour
{ {
[SerializeField] private ShopListView listView; [SerializeField] private ShopListView listView;
// Start is called before the first frame update // Start is called before the first frame update
private Subject<int> changeCoinSubject = new Subject<int>();
void Start() void Start()
{ {
changeCoinSubject.AddTo(this);
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
CoinManager.Instance.ChangeCoin(gameData.coin); CoinManager.Instance.ChangeCoin(gameData.coin);
HeartMeter.Instance.SetHeart(gameData.Heart); HeartMeter.Instance.SetHeart(gameData.Heart);
var changeCoinSubject = new Subject<int>().AddTo(this);
// 一覧データ // 一覧データ
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet); var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
foreach (var shopData in shopDataList) foreach (var shopData in shopDataList)
{ {
var itemView = listView.AddItemView(shopData); var itemView = listView.AddItemView(shopData);
itemView.SetData(shopData);
itemView.SetStockCount(GetItemAmount(shopData)); itemView.SetStockCount(GetItemAmount(shopData));
// コインを監視して購入可能状態を切り替え // コインを監視して購入可能状態を切り替え
changeCoinSubject.Subscribe(ownCoin => changeCoinSubject.Subscribe(ownCoin =>
@ -47,6 +50,12 @@ public class Shopping : MonoBehaviour
LocalCacheManager.Save(ShopItemPurchaseView.ItemPurchaseTag, (shopData, GetItemAmount(shopData), new Action<int>(x => purchaseSubject.OnNext(x)))); LocalCacheManager.Save(ShopItemPurchaseView.ItemPurchaseTag, (shopData, GetItemAmount(shopData), new Action<int>(x => purchaseSubject.OnNext(x))));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Purchase); TransitionManager.Instance.LoadSceneAdditive(GameScenes.Purchase);
}).AddTo(itemView); }).AddTo(itemView);
// show detail view
itemView.DetailButtonObservable.Subscribe(_ =>
{
LocalCacheManager.Save(ShopItemDetailView.ItemDetailTag, shopData);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ShoppingExplanation);
}).AddTo(itemView);
} }
changeCoinSubject.OnNext(CoinManager.Instance.OwnCoin); changeCoinSubject.OnNext(CoinManager.Instance.OwnCoin);
} }