我有一个按国家排列并按男女分类的JSON大名单。我想能够在Unity中访问这些名称,以将它们应用于各种生成的游戏角色等。但是,在尝试执行此操作时,我收到了空引用错误,但是我已经没有任何想法如何解决它。
我尝试创建字典来访问这些名称。以下是JSON的示例:
//json example
{
"India":{
"male":[
"A_Jay",
"Aaban",
"Aabid",
"Aabir",
"Aadam"
],
"female":[
"A_Jay",
"Aaban",
"Aabid",
"Aabir",
"Aadam"
]
},
"Usa":{
"male":[
"A_Jay",
"Aaban",
"Aabid",
"Aabir",
"Aadam"
],
"female":[
"A_Jay",
"Aaban",
"Aabid",
"Aabir",
"Aadam"
]
}
}
这是我尝试读取JSON文件的代码:
//jsonreader.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstName {
public List<string> male;
public List<string> female;
}
public class FirstNames {
public Dictionary<string, FirstName> countries;
}
public class JSONReader : MonoBehaviour {
public TextAsset jsonFile;
void Start(){
FirstNames firstNamesInJson = JsonUtility.FromJson<FirstNames>(jsonFile.text);
Debug.Log("Found name: " + firstNamesInJson.countries["India"].male[0]);
}
}
我的调试日志返回了一个空引用错误,我不确定原因。
JsonUtility
使用普通的Unity序列化规则..Dictionary
不被其支持...主要答案是:首先你需要一个第三方JSON库。 - derHugo