using System; using System.Collections.Generic; using UnityEngine; public class PaymentUI : MonoBehaviour { [SerializeField] private PaymentGate paymentGate; [SerializeField] private RectTransform GameModesRoot; [SerializeField] private GameObject GameModeViewPrefab; //[SerializeField] private RectTransform Pointer; private List views; private GameModeView selectedView; public event Action GamemodeChosen; public void Initialize(Dictionary gameModeAccesses) { //Generate(gameModeAccesses); //selectedView = views[0]; } public void Next() { //print("next"); } public void Previous() { //print("previous"); } public void Choose() { GamemodeChosen?.Invoke(selectedView.CachedGameMode); } private void Generate(Dictionary gameModeAccesses) { views = new List(); foreach (var gameModeAccess in gameModeAccesses) { var go = Instantiate(GameModeViewPrefab, GameModesRoot); if(go.TryGetComponent(out var view)) { view.Setup(gameModeAccess.Key); views.Add(view); } else Debug.LogWarning($"Префаб не настроен или не содержит компонент GameModeView", this); } } public void Refresh() { foreach(var view in views) { view.Refresh(); } } }