fix scroll game view

This commit is contained in:
kimura 2022-06-24 14:11:19 +09:00
parent 71efba8db6
commit 4f5b4461d4
3 changed files with 62 additions and 36 deletions

View File

@ -9,37 +9,12 @@ namespace MyGame.Scenes.MiniGame.Scripts
{
[SerializeField] private Text text;
[SerializeField] private Text timeText;
private readonly ReactiveProperty<int> itemCount = new ReactiveProperty<int>();
private readonly ReactiveProperty<float> timeCount = new ReactiveProperty<float>();
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}";
}
}
}

View File

@ -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<Unit> 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);
}
}
}

View File

@ -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<ShopData>(Const.ShopDataSheet);
var productDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(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}";
}
}
}
}
}