From 4f5b4461d4fd3082fa4ccc71b8830936ebc908b9 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 24 Jun 2022 14:11:19 +0900 Subject: [PATCH] fix scroll game view --- .../Scenes/MiniGame/Scripts/HeaderView.cs | 29 +-------------- .../MiniGame/Scripts/StageSelectItemView.cs | 32 ++++++++++++++-- .../MiniGame/Scripts/StageSelectView.cs | 37 ++++++++++++++++--- 3 files changed, 62 insertions(+), 36 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/HeaderView.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/HeaderView.cs index 57ae4c1c..a8935428 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/HeaderView.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/HeaderView.cs @@ -9,37 +9,12 @@ namespace MyGame.Scenes.MiniGame.Scripts { [SerializeField] private Text text; [SerializeField] private Text timeText; - private readonly ReactiveProperty itemCount = new ReactiveProperty(); - private readonly ReactiveProperty timeCount = new ReactiveProperty(); - private void Start() - { - itemCount.AddTo(this); - timeCount.AddTo(this); - itemCount.Subscribe(x => - { - text.text = $"{x}"; - }).AddTo(this); - timeCount.Subscribe(x => - { - timeText.text = $"のこり{x:0}秒"; - }).AddTo(this); - } - - public void ResetView() - { - itemCount.Value = 0; - timeCount.Value = 0; - } - - public void AddCount(int value) - { - itemCount.Value += value; - } + public void ChangeItemCount(int value) => text.text = value.ToString(); public void ChangeTimeCount(float newTime) { - timeCount.Value = newTime; + timeText.text = $"{newTime:0}"; } } } \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectItemView.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectItemView.cs index 22a17df5..d744be84 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectItemView.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectItemView.cs @@ -1,3 +1,5 @@ +using System; +using UniRx; using UnityEngine; using UnityEngine.UI; @@ -5,14 +7,36 @@ namespace MyGame.Scenes.MiniGame.Scripts { public class StageSelectItemView : MonoBehaviour { - [SerializeField] private Text stageName; + // [SerializeField] private Text stageName; [SerializeField] private Text stageHiScore; [SerializeField] private Button button; + [SerializeField] private GameObject lockObject; + private readonly IntReactiveProperty hiScore = new IntReactiveProperty(); + private int needScore; - public void SetStageName(string text) => stageName.text = text; + private void Start() + { + hiScore.AddTo(this); + hiScore.Subscribe(val => + { + stageHiScore.text = $"ハイスコア:{val}"; + }).AddTo(this); + } - public void SetStageHiScore(int num) => stageHiScore.text = num.ToString(); + public void SetStageHiScore(int num) => hiScore.Value = num; - public Button Button => button; + public IObservable OnClick => button.OnClickAsObservable().TakeUntilDestroy(this); + + public void SetData(ScrollGameStageData stageData) + { + needScore = stageData.needScore; + // stageName.text = stageData.id.ToString(); + } + + public void SetStageActive(bool active) + { + button.enabled = active; + lockObject.SetActive(!active); + } } } \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectView.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectView.cs index 50f535a9..0810741c 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectView.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageSelectView.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; +using System.Linq; using UnityEngine; using UnityEngine.UI; @@ -5,15 +7,40 @@ namespace MyGame.Scenes.MiniGame.Scripts { public class StageSelectView : MonoBehaviour { - [SerializeField] private Text nameText; - [SerializeField] private ScrollRect scrollRect; + [SerializeField] private Text titleText; + [SerializeField] private Text itemText; + [SerializeField] private Text recipeText; + // [SerializeField] private Text itemNeedScoreText; + [SerializeField] private Text recipeNeedScoreText; [SerializeField] private Text totalScore; - [SerializeField] private StageSelectItemView itemViewPrefab; + [SerializeField] private GameObject recipeObject; + [SerializeField] private ScrollRect scrollRect; + [SerializeField] private StageSelectItemView[] itemViewList; public ScrollRect ScrollRect => scrollRect; + public StageSelectItemView[] ItemViewList => itemViewList; - public void SetName(string text) => nameText.text = text; + public void SetScore(int num) => totalScore.text = $"累計スコア:{num}"; - public void SetScore(int num) => totalScore.text = num.ToString(); + public void SetPlaceData(ScrollGamePlaceData[] placeDataList) + { + // titleText.text = placeDataList[0].placeId.ToString(); + var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopDataSheet); + var productDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ProductDataSheet); + foreach (var placeData in placeDataList) + { + if (placeData.itemId != 0) + { + var shopData = shopDataList.FirstOrDefault(data => data.itemId == placeData.itemId && data.Category == ItemCategory.Material); + itemText.text = $"貰える材料: {shopData.Name}"; + // itemNeedScoreText.text = placeData.needScore.ToString(); + }else if (placeData.recipeId != 0) + { + var productData = productDataList.FirstOrDefault(data => data.id == placeData.recipeId); + recipeText.text = $"達成報酬: {productData.Name}"; + recipeNeedScoreText.text = $"必要スコア:{placeData.needScore}"; + } + } + } } } \ No newline at end of file