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));
}
}
}
}