using System.Collections.Generic; using TMPro; using UnityEngine; public class UnitSetUiCtrl : SingletonMonoBehaviour { [SerializeField] TMP_Text name; [SerializeField] TMP_Text attribute; [SerializeField] TMP_Text hp; [SerializeField] TMP_Text defense; [SerializeField] TMP_Text attack; [SerializeField] TMP_Text defensePenetration; [SerializeField] TMP_Text attackSpeed; [SerializeField] TMP_Text moveSpeed; [SerializeField] TMP_Text critical; [SerializeField] TMP_Text criticalDamage; [SerializeField] TMP_Text damageReduction; [SerializeField] TMP_Text level; [SerializeField] TMP_Text maxLevel; [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; protected override void OnAwake() { maxLevel.text = Statics.dynamic["maxLevel"]; 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) { //ÀåÂøµÈ ¾ÆÀÌÅÛ ½ºÅµ if (item.equip_unit != 0) continue; 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); } onUnitPrefabList[0].SelectUnit(); } 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); } public void StatusSet(UnitData unitData, DeckUnitInfo deckUnitInfo) { level.text = deckUnitInfo.level.ToString(); name.text = unitData.name; attribute.text = "None"; hp.text = (unitData.hp).ToString(); defense.text = (unitData.defense).ToString(); attack.text = (unitData.attack).ToString(); defensePenetration.text = "0%"; attackSpeed.text = (unitData.attack_speed).ToString(); moveSpeed.text = (unitData.move_speed).ToString(); critical.text = "0%"; criticalDamage.text = "50%"; damageReduction.text = "0%"; } }