69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.UI;
|
|
|
|
public class BagUICtrl : SingletonMonoBehaviour<BagUICtrl>
|
|
{
|
|
[SerializeField] GameObject invenItemPrefab;
|
|
[SerializeField] Transform invenItemContent;
|
|
[SerializeField] Image selectItemImg;
|
|
[SerializeField] TMP_Text selectItemInfo;
|
|
[SerializeField] Button selectItemButton;
|
|
|
|
List<InvenItemPrefab> invenItemList;
|
|
private InvenItemPrefab selectItem;
|
|
|
|
protected override void OnAwake()
|
|
{
|
|
invenItemList = new List<InvenItemPrefab>();
|
|
}
|
|
|
|
|
|
private void OnEnable()
|
|
{
|
|
int count = Statics.excelDatas.consumableItemData.Count;// + Statics.excelDatas.etcItemData.Count
|
|
if (invenItemList.Count != count)
|
|
{
|
|
foreach (var item in Statics.excelDatas.consumableItemData)
|
|
{
|
|
InvenItemPrefab obj = Instantiate(invenItemPrefab, invenItemContent).GetComponent<InvenItemPrefab>();
|
|
obj.Set(item.Value);
|
|
invenItemList.Add(obj);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in invenItemList)
|
|
{
|
|
item.UpdateDate();
|
|
}
|
|
}
|
|
selectItem = null;
|
|
selectItemImg.sprite = null;
|
|
selectItemImg.color = Color.clear;
|
|
selectItemInfo.text = string.Empty;
|
|
selectItemButton.gameObject.SetActive(false);
|
|
|
|
}
|
|
|
|
|
|
public void SelectButton(InvenItemPrefab selectItem, UnityAction action)
|
|
{
|
|
this.selectItem = selectItem;
|
|
//selectItemImg.sprite = selectItem.GetConsumableItemData;
|
|
selectItemImg.color = Color.white;
|
|
selectItemInfo.text = selectItem.GetConsumableItemData.name;
|
|
if(action == null)
|
|
selectItemButton.gameObject.SetActive(false);
|
|
else
|
|
{
|
|
selectItemButton.gameObject.SetActive(true);
|
|
selectItemButton.onClick.RemoveAllListeners();
|
|
selectItemButton.onClick.AddListener(action);
|
|
}
|
|
|
|
}
|
|
}
|