using System.IO; using UnityEngine; using UnityEngine.Events; using LitJson; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine.Networking; using Unity.VisualScripting.FullSerializer; using System.Runtime.InteropServices.ComTypes; public class NetManager : BaseManager { private NetManager() { } /// /// 网络访问的token /// public string token; public string url; /// /// UI_CheckTaskPanel面板内容的学习、练习模式可以外配,读取json的名称 /// string fileName = "10001.json"; public string content { get; private set; } [Serializable] public class IPConfig { public string content; } /// /// 获取本地配置文件 /// /// public void GetConfig(UnityAction action) { string path = Application.streamingAssetsPath + "/Config/Config.txt"; if (File.Exists(path)) { url = File.ReadAllText(path); action?.Invoke(true); } else { Debug.Log("没有对应的文件"); action?.Invoke(false); //UIManager.Instance.ShowPanel(E_UI_Layer.System, (panel) => //{ // panel.Init("没有读取到正确的Ip地址文件,请检查项目StreamingAssets文件夹下Config文件是否正常配置地址端口后再试!", E_MessageType.Error, Const.E_QuitApp); //}); } } /// /// /// /// public void SaveInfo(string info) { string path = Application.streamingAssetsPath + "/Config/info.txt"; Debug.Log(path); File.WriteAllText(path, info); } /// /// UI_CheckTaskPanel面板内容的学习、练习模式用json读取,可以外配 /// /// public void GetCheckTaskState(UnityAction action) { MonoMgr.Instance.StartCoroutine(GetCheckTaskStateAsync(action)); } private IEnumerator GetCheckTaskStateAsync(UnityAction action) { string path = System.IO.Path.Combine(Application.streamingAssetsPath, fileName); UnityWebRequest request = UnityWebRequest.Get(path); yield return request.SendWebRequest(); if (request.result != UnityWebRequest.Result.Success) { Debug.Log("Failed to load file: " + request.error); } else { // 获取文件内容 string fileContent = request.downloadHandler.text; IPConfig config = JsonUtility.FromJson(fileContent); content = config.content; Debug.Log(content); action?.Invoke(true); } } /// /// UI_CheckTaskPanel面板内容的考试模式用接口调取 /// /// public void GetCheckTaskExam(UnityAction action) { MonoMgr.Instance.StartCoroutine(GetCheckTaskExamAsync(action)); } private IEnumerator GetCheckTaskExamAsync(UnityAction action) { using (UnityWebRequest unityWebRequest = UnityWebRequest.Post("", string.Empty)) { yield return unityWebRequest.SendWebRequest(); if (unityWebRequest.result == UnityWebRequest.Result.Success) { Debug.Log("连接成功:*******************\n" + unityWebRequest.downloadHandler.text); string json = unityWebRequest.downloadHandler.text; action?.Invoke(true); Debug.Log("连接成功 "); } else { Debug.Log("连接失败 "); action?.Invoke(false); } } } }