我試圖從UnityEngine.JsonUtility
反序列化我的json項目從一個文件。它工作正常,但我的枚舉類型沒有得到適當的轉換。我嘗試使用EnumMember
屬性,但仍然沒有運氣。
與枚舉類型的JSON反序列化
我該如何解決這個問題?
注意
我使用this解決方案來讀取多個文件並將它們存儲在陣列。
[Serializable]
public class EquipementItem
{
public enum ItemTypes
{
None,
Armor,
Weapon
}
public enum SlotTypes
{
Head,
Shoulders,
Chest,
Bracers,
Gloves,
Waist,
Legs,
Boots,
Weapon
}
public int ID;
public string Name;
public ItemTypes ItemType;
public SlotTypes SlotType;
}
而且JSON文件
{
"Items": [
{
"ID": "1",
"Name": "Basic Sword",
"ItemType": "Weapon",
"SlotType": "Weapon"
},
{
"ID": "2",
"Name": "Advanced Sword",
"ItemType": "Weapon",
"SlotType": "Weapon"
},
{
"ID": "3",
"Name": "Leather Chest",
"ItemType": "Armor",
"SlotType": "Chest"
}
]}
這是我加載JSON文件中的類:
public class Items : MonoBehaviour
{
public static EquipementItem[] EquipableItems;
private void Awake()
{
string jsonFile = File.ReadAllText(Application.dataPath + "/Scripts/Databases/EquipableItemsDB.json");
EquipableItems = JsonHelper.FromJson<EquipementItem>(jsonFile);
}
}
枚舉的都是整數。你有沒有嘗試過將JSON中的「ItemType」設置爲1,將「SlotType」設置爲2? – ColinM
輸入json和模型在那裏,但我看不到**你的代碼** –
你可以發佈這個答案嗎?有效 ! – mashinkata