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
@@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f667daa0686227b49a9ca2ebd6326a98, type: 3}
m_Name: Minimarket
m_EditorClassIdentifier:
Place: Shop
JobPositionsList:
- {fileID: 11400000, guid: 9dd346cdfec57ee47ad1c06a925769bb, type: 2}
- {fileID: 11400000, guid: 36ad6fbffd0cc574aaf7d76308d965a1, type: 2}
- {fileID: 11400000, guid: 4381db145ac80514c957374e20392b3b, type: 2}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 137a0a77aa02f614ead909f23a670e95
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+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()