start to make tabs

This commit is contained in:
2023-04-13 19:50:43 +03:00
parent d1750a6147
commit 1f4659c3c0
10 changed files with 835 additions and 110 deletions
+31 -6
View File
@@ -17,11 +17,15 @@ public class JobSelectorUI : MonoBehaviour
private Button _btnOk;
[SerializeField]
private Transform _container;
private Transform _itemsContainer;
[SerializeField]
private Transform _tabsContainer;
[SerializeField]
private JobItemUITemplate _jobItemUItemplate;
[SerializeField]
private JobsListSO _jobs;
private JobTabUITemplate _jobTabUItemplate;
[SerializeField]
private List<JobsListSO> _jobs;
public void ShowJobSelectionDialog(string title, string description, Action onCancel, Action onConfirm)
{
@@ -30,13 +34,19 @@ public class JobSelectorUI : MonoBehaviour
gameObject.SetActive(true);
_title.text = title;
_description.text = description;
foreach (var job in _jobs.JobPositionsList)
//Create Tabs
foreach (var job in _jobs)
{
var itemUI = Instantiate(_jobItemUItemplate, _container);
var itemUI = Instantiate(_jobTabUItemplate, _tabsContainer);
itemUI.gameObject.SetActive(true);
itemUI.GetComponent<JobItemUITemplate>().SetItem((job));
itemUI.GetComponent<JobTabUITemplate>().SetItem(this,(job.name));
}
//foreach (var job in _jobs.JobPositionsList)
//{
// var itemUI = Instantiate(_jobItemUItemplate, _container);
// itemUI.gameObject.SetActive(true);
// itemUI.GetComponent<JobItemUITemplate>().SetItem((job));
//}
_btnCancel.onClick.AddListener(() =>
{
@@ -49,6 +59,21 @@ public class JobSelectorUI : MonoBehaviour
Hide();
});
}
public void OnTabEnter(JobTabUITemplate button)
{
print($"enter to {button.name}");
}
public void OnTabSelected(JobTabUITemplate button)
{
print($"selected {button.name}");
}
public void OnTabExit(JobTabUITemplate button)
{
print($"exit {button.name}");
}
private void CloseDialog()
{
UIManager.Instance.Unfreeze();
@@ -0,0 +1,36 @@
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class JobTabUITemplate : MonoBehaviour, IPointerEnterHandler,IPointerClickHandler, IPointerExitHandler
{
[SerializeField]
private TextMeshProUGUI _description;
[SerializeField]
private Image _icon;
private JobSelectorUI _parent;
public void SetItem(JobSelectorUI parent,string name)
{
_parent= parent;
_description.text = name;
//_icon.sprite = item.Icon;
}
public void OnPointerClick(PointerEventData eventData)
{
_parent.OnTabSelected(this);
}
public void OnPointerEnter(PointerEventData eventData)
{
_parent.OnTabEnter(this);
}
public void OnPointerExit(PointerEventData eventData)
{
_parent.OnTabExit(this);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6ef82e356ce0b8542a02cd451578f20b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+11 -3
View File
@@ -17,6 +17,12 @@ public class TimeSliderUI : MonoBehaviour
private Slider _slider;
private TimeSpan _time;
private void Start()
{
gameObject.SetActive(false);
}
public void ShowTimeSliderDialog(string title, string description, Action onCancel, Action<TimeSpan> onConfirm)
{
TimeManager.Instance.OnFastForwardEnd += CloseDialog;
@@ -53,9 +59,11 @@ public class TimeSliderUI : MonoBehaviour
private void Update()
{
_time = TimeSpan.FromHours(_slider.value);
_description.text = $"{_time.Hours} hours";
if (gameObject.activeSelf)
{
_time = TimeSpan.FromHours(_slider.value);
_description.text = $"{_time.Hours} hours";
}
}
private void Hide()