start to make tabs
This commit is contained in:
@@ -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:
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user