using System; using System.Collections; using System.Collections.Generic; using Cysharp.Threading.Tasks; using DefaultNamespace; using Newtonsoft.Json; using TMPro; using UnityEngine; using UnityEngine.UI; using WXGame.Network; /// /// 签到 /// public class CheckInComponent : MonoBehaviour { public Button closeButton; public Button claimButton; public Transform[] checkInDays; private GameObject selectedCheckIn; private void Awake() { claimButton.onClick.AddListener(delegate { SignToday(); }); closeButton.onClick.AddListener(CloseWindow); } private void Start() { GetMydates(); } private void CloseWindow() { UIManager.Instance.HideUI("签到"); } /// /// 今日打卡 /// private async UniTask SignToday() { try { var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetSignToday() ); Debug.Log("今日打卡: " + result.ResponseText); if (result != null && result.ResponseText != null) { selectedCheckIn?.transform.Find("已领取").gameObject.SetActive(true); selectedCheckIn?.transform.Find("可领取").gameObject.SetActive(false); } } catch (System.Exception ex) { Debug.LogError($"GET请求失败: {ex.Message}"); throw; // 重新抛出异常,让调用者知道失败 } } /// /// 获取7日签到数据 /// private async UniTask GetMydates() { var result = await WebRequestManager.Instance.PostRequestAsync( url: Apis.GetMyDates() ); Debug.Log("获取7日签到数据: " + result.ResponseText); SignData signData = JsonConvert.DeserializeObject(result.ResponseText); bool isSignToday = false; if (signData != null && signData.code == 0) { for (int i = 0; i < signData.data.data.Count; i++) { checkInDays[i].Find("币").GetComponent().text = signData.data.data[i].nums.ToString(); if (!isSignToday) { if (signData.data.data[i].status == 0) { checkInDays[i].Find("可领取").gameObject.SetActive(true); selectedCheckIn = checkInDays[i].gameObject; isSignToday = true; } else { checkInDays[i].Find("已领取").gameObject.SetActive(true); } } } } } }