首先,我在我的代碼中有一個類'item',它具有不同的字段,例如'id','name','isItem',int,string和boolean。我想創建一個函數,從給定的id創建一個'item'。我希望這個函數能像Excel那樣獲取數據庫中的對象或者可以手動編輯的東西。從文件中讀取配置信息
好的話,我通過創建一個ItemsContainer類喜歡嘗試用自己的方式:
public class ItemsContainer : MonoBehaviour {
public item[] items;
}
然後我試圖解析,如:
var json = System.IO.File.ReadAllText (Application.dataPath + "\\" + "json.txt");
ItemsContainer Items = JsonUtility.FromJson<ItemsContainer> (json);
Dictionary<int, item> its = new Dictionary<int, item>();
its = Items.items.ToDictionary (x => x.id);
但它給了我Cannot deserialize JSON to new instances of type 'ItemsContainer.'
我不知道爲什麼。 JSON的是在一個記事本的「產出」的精確副本...
的JSON看起來像
{
"items": [
{
"id": 1,
"Name": "Wood",
"isItem": true
},
{
"id": 2,
"Name": "Stone",
"isItem": true
}
]
}
而我的物品類別的定義爲:
public class item : MonoBehaviour {
public int id;
public string Name;
public bool isItem;
public item() {
Name = "Nothing";
isItem = false;
}
}
聽起來不錯。你聽說過實體框架嗎? – GolezTrol
永不,我應該看看它嗎? – Ay0m3
我不知道實體框架是否可以在Unity3d中使用。你有沒有考慮將它保存爲.json文件(它只是一個文本文件)並使用[JsonUtility'類(http://docs.unity3d.com/Manual/JSONSerialization.html)? –