using System.Collections.Generic; using UnityEngine; public class UnitSetUiCtrl : MonoBehaviour { [SerializeField] GameObject itemPrefab; [SerializeField] Transform itemContent; [SerializeField] GameObject unitPrefab; [SerializeField] Transform unitContent; [SerializeField] GameObject objInfo; [SerializeField] GameObject objItemView; [SerializeField] GameObject objEquipment; [SerializeField] GameObject objDeck; GameObjectPool itemPrefabList; GameObjectPool unitPrefabList; List onItemPrefabList; List onUnitPrefabList; private void Awake() { onItemPrefabList = new List(); onUnitPrefabList = new List(); itemPrefabList = new GameObjectPool(5, () => { var obj = Instantiate(itemPrefab, itemContent); obj.SetActive(false); var clone = obj.GetComponent(); return clone; }); unitPrefabList = new GameObjectPool(5, () => { var obj = Instantiate(unitPrefab, unitContent); obj.SetActive(false); var clone = obj.GetComponent(); return clone; }); } private void OnEnable() { ButtonStatus(); onItemPrefabList.Clear(); foreach (var item in Statics.equipment) { ItemPrefab prefab = itemPrefabList.pop(); prefab.SetData(item); prefab.gameObject.SetActive(true); onItemPrefabList.Add(prefab); } foreach (var item in Statics.deckUnit) { UnitPrefab prefab = unitPrefabList.pop(); prefab.SetData(item.Value); prefab.gameObject.SetActive(true); onUnitPrefabList.Add(prefab); } } private void OnDisable() { foreach (var item in onItemPrefabList) { item.gameObject.SetActive(false); itemPrefabList.push(item); } foreach (var item in onUnitPrefabList) { item.gameObject.SetActive(false); unitPrefabList.push(item); } } public void ButtonStatus() { objInfo.SetActive(true); objItemView.SetActive(false); objEquipment.SetActive(false); objDeck.SetActive(false); } public void ButtonEquipment() { objInfo.SetActive(false); objItemView.SetActive(true); objEquipment.SetActive(true); objDeck.SetActive(false); } public void ButtonDeck() { objInfo.SetActive(false); objItemView.SetActive(false); objEquipment.SetActive(false); objDeck.SetActive(true); } public void ButtoncHaracteristic() { objInfo.SetActive(false); objItemView.SetActive(false); objEquipment.SetActive(false); objDeck.SetActive(false); } }