using System; using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using Kill.Network; using Kill.UI.Components; using UnityEngine; namespace Kill.Managers { public class DataManager : MonoBehaviour { public static DataManager Instance { get; private set; } private void Awake() { Instance = this; } public async Task Init() { InitUser(); } public string token = ""; public UserInfo userInfo = new UserInfo(); public void SetToken(string token,UserInfo userInfo) { this.token = token; this.userInfo = userInfo; string userData =JsonUtility.ToJson(userInfo); Debug.Log(userData); PlayerPrefs.SetString("token", token); PlayerPrefs.SetString("userData", userData); NetworkCtrl.Instance.RemoveGlobalHeader("token"); NetworkCtrl.Instance.AddGlobalHeader("token", token); } public void InitUser() { token = PlayerPrefs.GetString("token", ""); string userData = PlayerPrefs.GetString("userData", ""); userInfo = JsonUtility.FromJson(userData); NetworkCtrl.Instance.RemoveGlobalHeader("token"); NetworkCtrl.Instance.AddGlobalHeader("token",token); Debug.Log(token); } public void ClearInfo() { token = ""; userInfo = new UserInfo(); PlayerPrefs.DeleteKey("token"); PlayerPrefs.DeleteKey("userData"); } public async Task TokenLogin() { LoadingUI.Show(); try { // 获取用户详情 var response = await NetworkCtrl.Instance.Post("/api/v1/auth/token-login"); LoadingUI.Hide(); ResponseCodeHandler.HandleResponse(response, onSuccess: (data) => { SetToken(data.data.token,data.data.user); } ); } catch (Exception ex) { LoadingUI.Hide(); Debug.LogError($"TokenLogin 异常: {ex.Message}"); } } } }