using TMPro; using UnityEngine; using UnityEngine.ResourceManagement.AsyncOperations; using UnityEngine.UI; public class ProfileCard : MonoBehaviour { public Image i_girl, i_openbtn; public TextMeshProUGUI[] texts; // 0 이름, 1 카운트 public GameObject go_openbtn, go_viewbtn, go_albumbtn, go_chatbtn, go_changegirl, go_openeffect; public RectTransform rect; public Material mat_Gray; girltabledata m_Data; AsyncOperationHandle m_Handle; private void Awake() { rect = GetComponent(); } public void Set(int girlid) { if (girlid < 1) girlid = 8; else if (girlid > 8) girlid = 1; m_Data = table_girl.Ins.Get_Data(girlid); i_girl.enabled = false; AddrResourceMgr.Ins.Relese(m_Handle); AddrResourceMgr.Ins.LoadObject(m_Data.s_ProfileImage, handle => { m_Handle = handle; i_girl.enabled = true; i_girl.sprite = handle.Result; }); Set_UI(); } void Set_UI() { var count = SaveMgr.Ins.Get_ImageCount(m_Data.n_GirlID); var maxcount = table_album.Ins.Get_DataList(m_Data.n_GirlID).Count; texts[0].text = m_Data.s_Name; texts[1].text = $"{count}/{maxcount}"; i_girl.material = count == 0 ? mat_Gray : null; go_openbtn.SetActive(count == 0); i_openbtn.sprite = UIAtlasMgr.Ins.Get_Sprite(CanOpen() ? "Yellow btn" : "gray btn"); go_openeffect.SetActive(CanOpen()); go_viewbtn.SetActive(count == 0); go_albumbtn.SetActive(count > 0); go_chatbtn.SetActive(count > 0); go_changegirl.SetActive(false); if (SaveMgr.Ins.IsObtainGirl(2)) { // 획득한 캐릭터 2종 이상 if (SaveMgr.Ins.Get_SelectGirlID() != m_Data.n_GirlID) go_changegirl.SetActive(count > 0); // 선택된 캐릭터가 아니며 획득한 캐릭인 경우 } } bool CanOpen() { var pregirl = m_Data.n_GirlID - 1; if (pregirl > 0) { var lst = table_album.Ins.Get_DataList(pregirl); return (lst.Count == SaveMgr.Ins.Get_ImageCount(pregirl) && SaveMgr.Ins.Get_ImageCount(m_Data.n_GirlID) == 0); } return false; } public void OnClick_Profile() { if (m_Data != null) LobbyUI.Ins.Show_Profile(m_Data.n_GirlID); } public void OnClick_Chat() { if (m_Data != null) LobbyUI.Ins.m_ChatUI.Set(m_Data); } public void OnClick_Preview() { // 훔쳐보기 if (SaveMgr.Ins.CanShowPreviewAD()) ADInfo.Ins.Show_AD(false, () => { var lst = table_album.Ins.Get_DataList(m_Data.n_GirlID).FindAll(f=>!f.s_Image.Contains("Heart")); var rdnData = lst[Random.Range(0, lst.Count)]; ShowAlbum.Ins.Show(rdnData, true); SaveMgr.Ins.Add_PreviewADTime(table_GlobalValue.Ins.Get_Int("PreviewADTime")); }); } public void OnClick_Open() { var pregirl = m_Data.n_GirlID - 1; if (pregirl > 0) { if (CanOpen()) { // 열 수 있음 SaveMgr.Ins.Open_Image(); // 최초 한 장 공짜 지급 SaveMgr.Ins.Save(); Set_UI(); } else { var pregirldata = table_girl.Ins.Get_Data(pregirl); LobbyUI.Ins.m_ToastUI.Set($"{pregirldata.s_Name}의 앨범을 모두 오픈해 주세요."); } } } public void OnClick_ChangeGirl() { LobbyUI.Ins.m_ChangeGirlUI.Set(); } public void OnClick_Album() { if (m_Data != null) LobbyUI.Ins.Go_Album(m_Data.n_GirlID); } }