Files
SimUL/Assets/Scripts/DialogueSystem/SliderUI.cs
T
2023-03-14 20:54:50 +02:00

72 lines
1.5 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class SliderUI : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI _title;
[SerializeField]
private TextMeshProUGUI _description;
[SerializeField]
private Button _btnCancel;
[SerializeField]
private Button _btnOk;
[SerializeField]
private Slider _slider;
public static SliderUI Instance { get; private set; }
private void Awake()
{
if (Instance != null)
{
return;
}
Instance = this;
}
private void Start()
{
Hide();
}
public TimeSpan ShowTimeSliderDialog(string title,string description,Action onCancel,Action<TimeSpan> onConfirm)
{
TimeManager.Instance.Pause();
TimeSpan retTime=TimeSpan.Zero;
gameObject.SetActive(true);
_title.text = title;
_description.text = description;
_btnCancel.onClick.AddListener(() =>
{
onCancel?.Invoke();
Hide();
});
_btnOk.onClick.AddListener(() =>
{
onConfirm?.Invoke(TimeSpan.FromSeconds(_slider.value));
Hide();
});
return retTime;
}
private void Update()
{
var time = TimeSpan.FromSeconds(_slider.value);
_description.text = $"{time.Hours} hours {time.Minutes} minutes";
}
private void Hide()
{
TimeManager.Instance.Resume();
gameObject.SetActive(false);
}
}