using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.Assertions; using UnityEngine.EventSystems; using UnityEngine.UI; namespace TON { public class LobbyUI : UIBase { [SerializeField] private TextMeshProUGUI characterName; [SerializeField] private TextMeshProUGUI characterHp; [SerializeField] private TextMeshProUGUI characterMp; [SerializeField] private TextMeshProUGUI characterAttck; [SerializeField] private TextMeshProUGUI characterDefence; [SerializeField] private TextMeshProUGUI characterCritical; public List stageList = new List { "STG001", "STG002", "STG003", "STG004" }; public List stagePages = new List(); public GameObject stagePagePrefab; public Transform stagePageGroup; private void Start() { SetCharacterData(); SetStageData(); } private void SetCharacterData() { PlayerData player = PlayerDataManager.Singleton.player; Image playerObj = GameObject.Find("TON.Player").GetComponent(); playerObj.sprite = AssetManager.Singleton.LoadPlayerIcon(player.type, out Sprite playerImage) ? playerImage : null; characterName.text = player.name; characterHp.text = $"{player.hp}"; characterMp.text = $"{player.mp}"; characterAttck.text = $"{player.attackPower}"; characterDefence.text = $"{player.defensivePower}"; characterCritical.text = $"{player.critical}"; } private void SetStageData() { if (stagePages.Count > 0) { foreach (var stagePage in stagePages) { Destroy(stagePage.gameObject); } stagePages.Clear(); } for (int i = 0; i < stageList.Count; i++) { string stageId = stageList[i]; GameObject stagePageObject = Instantiate(stagePagePrefab, stagePageGroup); LobbyUI_StagePage stagePage = stagePageObject.GetComponent(); stagePageObject.SetActive(true); stagePage.Initalize(stageId, i); stagePages.Add(stagePage); } } public void OnClickChangeStageButton() { // TODO: 스테이지 입장 popupUI 비활성화 stagePages.ForEach(page => page.GetComponent().OnClickStageChangeButton()); } public void OnClickStageButton() { // 스테이지 입장 UI 활성화 GameObject currentSelectedGameObject = EventSystem.current.currentSelectedGameObject; LobbyUI_StagePage lobbyUI_StagePage = currentSelectedGameObject.GetComponentInParent(); PlayerPrefs.SetString("StageId", lobbyUI_StagePage.stageId); lobbyUI_StagePage.OnClickStageButton(); } public void OnClickStagePlayButton() { Main.Singleton.ChangeScene(SceneType.Stage); } public void OnClickSkillSettingButton() { UIManager.Show(UIList.SkillSettingUI); } public void OnClickShopButton() { // TODO: 상점 UI 추가 // UIManager.Show(UIList.ShopUI); } } }