using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; namespace TON { public class CharaterCreateUI : UIBase { [SerializeField] private Button createButton; // Create 버튼 참조 [SerializeField] private List playerDatas; [SerializeField] private List heartDatas; public GameObject characterCreateUI_Modal; private string selectedCharacter; // 선택한 캐릭터의 타입 저장 (예: "MaleCat", "FemaleCat") private void Start() { playerDatas = PlayerDataManager.Singleton.playersData; heartDatas = HeartDataManager.Singleton.heartDatas; // 처음에는 버튼을 비활성화 createButton.interactable = false; } public void SelectCharacter(string characterType) { selectedCharacter = characterType; createButton.interactable = true; // 캐릭터가 선택되면 버튼 활성화 } public void OnClickCreateButton() { if (string.IsNullOrEmpty(selectedCharacter)) { // 캐릭터 선택되지 않은 상태에서 버튼 동작 되지 않도록 적용 return; } // 선택된 캐릭터 인덱스 정보를 저장 (다음 씬에서도 사용할 수 있도록) PlayerPrefs.SetInt("SelectedPlayerIndex", playerDatas.Count); // 캐릭터 이름 입력 모달 활성화 characterCreateUI_Modal.SetActive(true); } public void OnClickConfirmButton() { TMP_InputField characterName = characterCreateUI_Modal.GetComponentInChildren(); Debug.Log("characterName" + characterName.text); // 생성한 캐릭터를 저장한다 PlayerData player = new PlayerData(playerDatas.Count, selectedCharacter, characterName.text); playerDatas.Add(player); JSONLoader.SaveToFile(playerDatas, "player"); // 하트 시스템을 생성한다 HeartDataManager.Singleton.CreateNewHeartSystem(playerDatas.Count); HeartDataManager.Singleton.SetCurrentUserHeart(); // 씬 변경 UIManager.Hide(UIList.CharaterCreateUI); Main.Singleton?.ChangeScene(SceneType.Lobby); } } }