using System; using System.Collections; using System.Collections.Generic; using BestHTTP; using DragonLi.Core; using Mirror; using Mirror.SimpleWeb; using TMPro; using Unity.XR.PXR; using UnityEngine; using UnityEngine.UI; /// /// 鉴权信息 /// public class AuthInfo { public string deviceSn = ""; public string startAt = ""; public int shop; public int gameId; } 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(); } public class AuthorPanel : MonoBehaviour { 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(() => { //StartCoroutine(GameManager.Ins.PlayAudio("主界面主题曲", GameInit.Ins.self.transform, true)); // Debug.Log("鉴权成功"); // RequestAuthCount = 0; // WorldUIManager.Ins.Back(); // GameManager.Ins.UpdateConf(); // GameManager.Ins.StartGame(); // 鉴权 GameManager.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("鉴权成功"); GameManager.Ins.UpdateConf(); _isAuth = true; } else if (MRNetworkManager.Ins.mode == NetworkManagerMode.ClientOnly) { WorldUIManager.Ins.Back(); } }); }, 1); } IEnumerator Progress() { progressImage.fillAmount = 0; progressText.text = "0%"; _progress = 0; _isAuth = false; //GameManager.Ins.UpdateConf(); //_isAuth = true;//修改为本地游戏 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); } RequestAuthCount = 0; WorldUIManager.Ins.Back(); // 进行难度选择 WorldUIManager.Ins.Cover("UI/DifficultySelectPlane", false); } 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); } RequestAuthCount = 0; WorldUIManager.Ins.Back(); // 进行难度选择 WorldUIManager.Ins.Cover("UI/DifficultySelectPlane", false); } } } }