資金投入ダイアログ追加
This commit is contained in:
parent
616567bd2c
commit
554f36fee5
|
@ -0,0 +1,92 @@
|
|||
using System;
|
||||
using I2.Loc;
|
||||
using TMPro;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace MyGame.Scenes.WorldMap.Scripts
|
||||
{
|
||||
public class FundingDialog : MonoBehaviour
|
||||
{
|
||||
private static readonly string CallbackTag = "FundingDialogCallback";
|
||||
private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger");
|
||||
private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger");
|
||||
|
||||
[SerializeField] private Animator backgroundAnimator;
|
||||
[SerializeField] private Button closeButton;
|
||||
[SerializeField] private Button fundingButton;
|
||||
[SerializeField] private Button upButton;
|
||||
[SerializeField] private Button downButton;
|
||||
[SerializeField] private Transform iconTarget;
|
||||
[SerializeField] private Text titleText;
|
||||
[SerializeField] private Text myCoinText;
|
||||
[SerializeField] private TextMeshProUGUI progressCoinText;
|
||||
[SerializeField] private Slider progressBeforeSlider;
|
||||
[SerializeField] private Slider progressAfterSlider;
|
||||
[SerializeField] private Text fundingCoinText;
|
||||
[SerializeField] private GameObject warnObject; // 所持金1000無いと投資できない
|
||||
[SerializeField] private GameObject fundingButtonOff;
|
||||
[Min(0)] [SerializeField] private int fundingUnit = 1000;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
var (fundingData, onComplete, onClose) = LocalCacheManager.Load<(FundingData, Action<int>, Action)>(CallbackTag, (null, null, null));
|
||||
LocalCacheManager.Remove(CallbackTag);
|
||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
onClose?.Invoke();
|
||||
transform.parent.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
this.CallWaitForSeconds(.25f, () =>
|
||||
{
|
||||
TransitionManager.Instance.UnloadScene(GameScenes.Update);
|
||||
});
|
||||
}).AddTo(this);
|
||||
|
||||
var fundingAmount = 0;
|
||||
fundingButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||
{
|
||||
onComplete?.Invoke(fundingAmount);
|
||||
}).AddTo(this);
|
||||
|
||||
var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<CityData>(Const.CityDataSheet);
|
||||
var cityGameData = GameDataManager.GetCityGameData(fundingData.cityId);
|
||||
var fundingCityGameData = GameDataManager.GetCityGameData(fundingData.fundingCityId);
|
||||
var funded = cityGameData.FundingDict[fundingData.fundingCityId];
|
||||
|
||||
if (fundingCityGameData.Coin < fundingUnit)
|
||||
{
|
||||
warnObject.SetActive(true);
|
||||
fundingButtonOff.SetActive(true);
|
||||
fundingButton.gameObject.SetActive(false);
|
||||
return;
|
||||
}
|
||||
warnObject.SetActive(false);
|
||||
fundingButtonOff.SetActive(false);
|
||||
fundingButton.gameObject.SetActive(true);
|
||||
// titleText.text
|
||||
myCoinText.text = fundingCityGameData.Coin.ToString();
|
||||
progressBeforeSlider.value = (float)funded / fundingData.needAmount;
|
||||
|
||||
var left = fundingData.needAmount - funded;
|
||||
var max = Mathf.Min(fundingCityGameData.Coin, left) / fundingUnit;
|
||||
upButton.OnClickAsObservable().Select(_ => 1).Merge(downButton.OnClickAsObservable().Select(_ => -1))
|
||||
.Scan(0, (acc, curr) => Mathf.Clamp(acc + curr, 0, max))
|
||||
.StartWith(0)
|
||||
.Subscribe(x =>
|
||||
{
|
||||
fundingAmount = x * fundingUnit;
|
||||
fundingButton.interactable = x > 0;
|
||||
progressCoinText.text = $"{funded + fundingAmount}/{fundingData.needAmount}";
|
||||
fundingCoinText.text = (fundingAmount).ToString();
|
||||
progressAfterSlider.value = (float)(funded + fundingAmount) / fundingData.needAmount;
|
||||
}).AddTo(this);
|
||||
}
|
||||
|
||||
public static void ShowDialog(FundingData fundingData, Action<int> onComplete = null, Action onClose = null){
|
||||
LocalCacheManager.Save(CallbackTag, (fundingData, onComplete, onClose));
|
||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.WorldMapInvestment);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c7542f5f447e4325a4f523509d34fe9f
|
||||
timeCreated: 1663218994
|
|
@ -292,8 +292,6 @@ GameObject:
|
|||
- component: {fileID: 152021007}
|
||||
- component: {fileID: 152021011}
|
||||
- component: {fileID: 152021010}
|
||||
- component: {fileID: 152021009}
|
||||
- component: {fileID: 152021008}
|
||||
m_Layer: 5
|
||||
m_Name: Button_investment_off
|
||||
m_TagString: Untagged
|
||||
|
@ -322,66 +320,6 @@ RectTransform:
|
|||
m_AnchoredPosition: {x: 0, y: 2}
|
||||
m_SizeDelta: {x: 250, y: 130}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &152021008
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 152021006}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5e732834936f04d48be0ff3fa358563d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
onClickPlaySEFilename: se_ButtonTap
|
||||
randomPlaySEFilenames: []
|
||||
randomPlayVoiceFilenames: []
|
||||
vibrationType: 0
|
||||
--- !u!114 &152021009
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 152021006}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 152021010}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &152021010
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1307,7 +1245,7 @@ MonoBehaviour:
|
|||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
|
@ -1327,7 +1265,7 @@ MonoBehaviour:
|
|||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_Interactable: 0
|
||||
m_TargetGraphic: {fileID: 0}
|
||||
m_FillRect: {fileID: 1526359068}
|
||||
m_HandleRect: {fileID: 0}
|
||||
|
@ -1396,7 +1334,7 @@ MonoBehaviour:
|
|||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
|
@ -1416,7 +1354,7 @@ MonoBehaviour:
|
|||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_Interactable: 0
|
||||
m_TargetGraphic: {fileID: 0}
|
||||
m_FillRect: {fileID: 265370315}
|
||||
m_HandleRect: {fileID: 0}
|
||||
|
@ -1424,7 +1362,7 @@ MonoBehaviour:
|
|||
m_MinValue: 0
|
||||
m_MaxValue: 1
|
||||
m_WholeNumbers: 0
|
||||
m_Value: 0.542
|
||||
m_Value: 0.525
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
|
@ -3348,6 +3286,7 @@ GameObject:
|
|||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1951009976}
|
||||
- component: {fileID: 1951009977}
|
||||
m_Layer: 5
|
||||
m_Name: Window
|
||||
m_TagString: Untagged
|
||||
|
@ -3377,6 +3316,33 @@ RectTransform:
|
|||
m_AnchoredPosition: {x: 0, y: 72}
|
||||
m_SizeDelta: {x: 705, y: 900}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1951009977
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1951009975}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c7542f5f447e4325a4f523509d34fe9f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
backgroundAnimator: {fileID: 718939943}
|
||||
closeButton: {fileID: 1372709862}
|
||||
fundingButton: {fileID: 205016327}
|
||||
upButton: {fileID: 3235806894079851394}
|
||||
downButton: {fileID: 3235806894231659198}
|
||||
iconTarget: {fileID: 338244695}
|
||||
titleText: {fileID: 20687212}
|
||||
myCoinText: {fileID: 979956445}
|
||||
progressCoinText: {fileID: 1405152730}
|
||||
progressBeforeSlider: {fileID: 475956153}
|
||||
progressAfterSlider: {fileID: 484488682}
|
||||
fundingCoinText: {fileID: 1532540344}
|
||||
warnObject: {fileID: 1744491968}
|
||||
fundingButtonOff: {fileID: 152021006}
|
||||
fundingUnit: 1000
|
||||
--- !u!114 &481714593923255930
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -52,7 +52,8 @@ public enum GameScenes
|
|||
MiniGame,
|
||||
WatchMovieMiniGame,
|
||||
MiniGameNotReleased,
|
||||
WorldMap
|
||||
WorldMap,
|
||||
WorldMapInvestment,
|
||||
}
|
||||
|
||||
public enum SceneType
|
||||
|
|
|
@ -149,4 +149,7 @@ EditorBuildSettings:
|
|||
- enabled: 1
|
||||
path: Assets/MyGame/Scenes/WorldMap/WorldMap.unity
|
||||
guid: 18c713da1bb264873bb774b3dfa16785
|
||||
- enabled: 1
|
||||
path: Assets/MyGame/Scenes/WorldMap/WorldMapInvestment.unity
|
||||
guid: 8b693b6e06372ed42a3b756805881e05
|
||||
m_configObjects: {}
|
||||
|
|
Loading…
Reference in New Issue