using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; namespace TON { public class ControllerUI : UIBase { public static ControllerUI Instance => UIManager.Singleton.GetUI(UIList.ControllerUI); /// 조이스틱에서 컨트롤된 x 값을 Player에서 사용할 수 있도록 객체화 public VariableJoystick joystick; public CharacterBase linkedCharactor { get; set; } public Transform skillButtonGroup; public SkillButtonItem skillButtonPrefab; private List createdSkillButtons = new List(); public UserItemData userItem { get; private set; } = new UserItemData(); // 보유 포션 수량 [SerializeField] private TextMeshProUGUI hpPotionCount; [SerializeField] private TextMeshProUGUI mpPotionCount; private int potionLimit = 5; // 게임에서 사용할 수 있는 포션 수 제한 private int hpPotion = 0; private int mpPotion = 0; public List itemButtons = new List(); private void OnEnable() { skillButtonPrefab.gameObject.SetActive(false); Initalize(); InitalizeItemData(); } private void FixedUpdate() { SetPotionText(); } public void Initalize() { // 이미 기존에 UI가 생성되어 있다면 삭제 if (createdSkillButtons.Count > 0) { foreach (var button in createdSkillButtons) { Destroy(button.gameObject); } createdSkillButtons.Clear(); } // 스킬 버튼을 생성 List activatedSkills = SkillDataManager.Singleton.GetEquippedSkills(); for (int i = 0; i < 3; i++) { SkillButtonItem newSkillButton = Instantiate(skillButtonPrefab, skillButtonGroup); newSkillButton.gameObject.SetActive(true); if (i < activatedSkills.Count && activatedSkills[i] != null) // 해당 인덱스에 활성화된 스킬이 있을 경우 { // 직접 equippedSkills의 인스턴스를 전달 newSkillButton.Initalize(activatedSkills[i]); newSkillButton.GetComponent