void LoadData()
{
TextAsset heroData = Resources.Load<TextAsset>("VideoData");
List<DaHeZhiBeiDataModel> heroList = JsonConvert.DeserializeObject<List<DaHeZhiBeiDataModel>>(heroData.text);
if (heroList == null)
{
Debug.LogError("Load Error_");
return;
}
以上代码在编辑器与移动端没有问题,但在PC中无法反序列化(不知道是不是因为其他设置有问题)
解决办法:将ProjectSetting -Player-Configuration-Scripting Backend设置为Mono
void LoadData()
{
TextAsset asset = Resources.Load<TextAsset>("VideoData");
JsonData t_Data = JsonMapper.ToObject(asset.text);
Debug.Log(t_Data.Count);
if (t_Data.Count<=0)
{
Debug.LogError("ERROR");
return;
}
for (int i = 0; i < t_Data.Count; i++)
{
DaHeZhiBeiDataModel t_data=new DaHeZhiBeiDataModel();
t_data.VideoName = t_Data[i][0].ToString();
t_data.VideoPathType = t_Data[i][1].ToString();
t_data.Title = t_Data[i][2].ToString();
t_data.AbsolutePathOrURL = t_Data[i][3].ToString();
t_data.StreamingFolder = t_Data[i][4].ToString();
t_data.RelativeToFolder = t_Data[i][5].ToString();
t_data.Describe = t_Data[i][6].ToString();
}
}
如果不想放弃IL2CPP,就只能像上面这样自己获取数据了.litjson和unity自带的JsonUtility很遗憾不能解析复杂的数据模型,如果大佬们有简单方法可以告诉我一下,感激不尽.