Ich versuche, meine JSON-Elemente aus einer Datei mit UnityEngine.JsonUtility
deserialisieren. Es funktioniert gut, aber meine Enum-Typen werden nicht richtig konvertiert. Ich habe versucht, das EnumMember
Attribut zu verwenden, hatte aber immer noch kein Glück.
JSON-Deserialisierung mit Aufzählungstypen
Wie kann ich das beheben?
Hinweis
ich this Lösung bin mit mehreren Dateien und speichert sie in einem Array zu lesen.
[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;
}
Und die JSON-Datei
{
"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"
}
]}
Dies ist die Klasse, wo ich die JSON-Datei laden:
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);
}
}
Enum ist unterhalb ganze Zahlen deserialisieren. Hast du versucht, "ItemType" in deinem JSON auf 1 und "SlotType" auf 2 zu setzen? – ColinM
Eingabe json und das Modell ist da, aber ich kann nicht sehen ** Ihren Code ** –
Können Sie dies als Antwort posten? Es funktionierte ! – mashinkata