using System; using System.Collections; using System.Collections.Generic; using BestHTTP; using DragonLi.Core; using TMPro; using Unity.XR.PXR; using UnityEngine; using UnityEngine.UI; using XUI; /// /// 鉴权信息 /// public class AuthInfo { public string deviceSn = ""; public string startAt = ""; public int shop; public int gameId; // GPS经纬度 public double latitude = 0; public double longitude = 0; } public class ResponseInfo { public int code = 400; public string msg = ""; } public class ConfInfo { public string createdAt; public string data; } public class ConfResponseInfo { public int status = 400; public string message = ""; public ConfInfo data = new ConfInfo(); } namespace Common { public class AuthorPanel : UIBehaviour { public Common.State PanelState; private int RequestAuthCount = 0; public Image progressImage; public TextMeshProUGUI progressText; private int _progress; private bool _isAuth; public static void Show() { WorldUIManager.Ins.Cover("UI/AuthorPanel", false); } public void Start() { #if !UNITY_EDITOR && UNITY_ANDROID && PICO PXR_Enterprise.InitEnterpriseService(); PXR_Enterprise.BindEnterpriseService(); #endif Author(); if (progressImage == null) return; StartCoroutine(Progress()); } public void Author() { //延迟请求 MonoSingleton.Instance.WaitSecondTodo(() => { //鉴权 GameLocal.Ins.RequestAuth((req, response) => { RequestAuthCount++; if (response == null) { Debug.Log("鉴权失败1"); if (RequestAuthCount < 2) { Author(); return; } PanelState.StateChange(1); return; } ResponseInfo info = JsonUtility.FromJson(response.DataAsText); if (info.code < 200 || info.code >= 300) { Debug.Log("鉴权失败2"); if (RequestAuthCount < 2) { Author(); return; } PanelState.StateChange(1); return; } if (info.code == 200) { Debug.Log("鉴权成功"); _isAuth = true; GameManager.Ins.UpdateConf(); } }); }, 1); } IEnumerator Progress() { progressImage.fillAmount = 0; progressText.text = "0%"; _progress = 0; _isAuth = false; //Debug.Log("鉴权成功"); //_isAuth = true; //GameManager.Ins.UpdateConf();//修改为本地游戏 float curWaitTime = 0; while (_progress<=90) { //Debug.Log(_progress); progressText.text = _progress + "%"; progressImage.fillAmount = _progress/100f; _progress += 1; yield return new WaitForSeconds(0.02f); } Debug.Log("是否鉴定成功 :"+_isAuth); if (_isAuth) { while (_progress<=100) { progressText.text = _progress + "%"; progressImage.fillAmount = _progress/100f; _progress += 1; yield return new WaitForSeconds(0.02f); } GameManager.Ins.LoginGame(); RequestAuthCount = 0; WorldUIManager.Ins.Back(); } else { while (!_isAuth && curWaitTime < 30) { curWaitTime += 1; yield return new WaitForSeconds(1f); } if (_isAuth) { while (_progress<=100) { progressText.text = _progress + "%"; progressImage.fillAmount = _progress/100f; _progress += 1; yield return new WaitForSeconds(0.02f); } GameManager.Ins.LoginGame(); RequestAuthCount = 0; WorldUIManager.Ins.Back(); } else { PanelState.StateChange(1); } } } } }