using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Events; using UnityEngine.Networking; /// /// 数据加载器 /// /// 数据类型 public class DataLoader { /// /// 数据对象列表 /// public static List DataList; public static Dictionary DataDics; /// /// 加载数据 /// /// 数据文件名 /// 加载后处理程序 public static IEnumerator LoadDataDictionary(string dataFileName, UnityAction DataLoaded = null) { string filename = CommonData.DataFullPath + dataFileName; // Debug.Log(filename); UnityWebRequest www = UnityWebRequest.Get(filename); yield return www.SendWebRequest(); if (www.result == UnityWebRequest.Result.ConnectionError) { Debug.Log(www.error); } if (www.isDone) { string data = www.downloadHandler.text; if (!string.IsNullOrEmpty(data)) { if (DataDics != null) { DataDics.Clear(); } //Debug.Log(filename + ":" + data); DataDics = JsonTools.DicFromJson(data); } if (DataLoaded != null) { DataLoaded(); } } } /// /// 加载数据 /// /// 数据文件名 /// 加载后处理程序 public static IEnumerator LoadDataList(string dataFileName, UnityAction DataLoaded = null) { string filename = CommonData.DataFullPath + dataFileName; // Debug.Log(filename); UnityWebRequest www = UnityWebRequest.Get(filename); yield return www.SendWebRequest(); if (www.result == UnityWebRequest.Result.ConnectionError) { Debug.Log(www.error); } if (www.isDone) { string data = www.downloadHandler.text; if (!string.IsNullOrEmpty(data)) { if (DataList != null) { DataList.Clear(); } //Debug.Log(filename + ":" + data); DataList = JsonTools.ListFromJson(data); //Dictionary dt = new Dictionary(); //foreach (var item in DataList) //{ // if (item is Data) // { // dt.Add((item as Data).ObjectID, item); // } //} // Debug.Log(JsonTools.DicToJson(dt)); if (DataLoaded != null) { DataLoaded(); } } } } /// /// 加载数据 /// /// 数据文件名 /// 加载后处理程序 public static IEnumerator ListToDic(string dataFileName) { string filename = CommonData.DataFullPath + dataFileName; // Debug.Log(filename); UnityWebRequest www = UnityWebRequest.Get(filename); yield return www.SendWebRequest(); if (www.result == UnityWebRequest.Result.ConnectionError) { Debug.Log(www.error); } if (www.isDone) { string data = www.downloadHandler.text; if (!string.IsNullOrEmpty(data)) { List DataList = JsonTools.ListFromJson(data); Dictionary dt = new Dictionary(); foreach (var item in DataList) { if (item is Data) { dt.Add((item as Data).ObjectID, item); } } Debug.Log(JsonTools.DicToJson(dt)); } } } }