Also arbeite ich an meinem Spiel in Unity, und ich stieß auf ein Problem in Bezug auf XML. Ich habe ein System eingerichtet, dank eines Tutorials, mit dem ich Elemente erstellen kann, indem ich ihre Daten aus einer XML-Datenbank lese. Aber es gibt ein Problem. Ich möchte, dass meine XML-Datei einzurichten lesen sich wie folgt:.XML-Serialisierung in Unity - Haben ein Array verschiedene Array-Elemente?
<resistance>
<physical>
<phy>60.0</phy>
</physical>
<air>
<air>50.0</air>
</air>
</resistance>
Ich habe jedoch keine Möglichkeit zum Einstellen der als Wurzel zu prüfen, um die Daten in
Das Format der XML gefunden Datei ist wie folgt:
<Item>
<id>0</id>
<name>Helmet</name>
<resistance>
<physical>
<phy>60.0</phy>
</physical>
<air>
<air>50.5</air>
</air>
</resistance>
</Item>
[XmlArray ("Widerstand"), XmlArrayItem ("physical")] nur den Teil liest. Ich habe auch versucht zu schreiben alles wie folgt:
[XmlArray("resistance"), XmlArrayItem("physical"), XmlArrayItem("phy")]
public float[] phyres;
[XmlArray("air"), XmlArrayItem("air")]
public float[] airres;
Aber die XML-Datei dann bekam chaotisch, obwohl die Daten gelesen wurde, und ich habe die richtigen Widerstände, was nach dem folgte, war nicht gelesen, als wenn der Widerstand der neuen wurde Permanente Wurzel der XML-Datei. Vielen Dank im Voraus.
Bearbeiten: Mit anderen Worten, ich möchte ein Subroot in meinem Kind haben, und halten Sie ein paar verschiedene Arrays dort.
Edit: Edit: Danke jdweng Sie sind, diese am Ende einfacher zu schreiben:
[XmlElement("resistance"), XmlArrayItem("physical")]
public float[] phyres;
[XmlElement("air")]
public float[] airres;
Aber ich immer noch das gleiche Problem bekommen. Der Root/Namespace ist auf gesetzt, und danach wird alles aus diesem Namespace gelesen. Nicht einmal das Nachher beeinflusst es.
ändern XmlArray zu XmlElement. XmlElement funktioniert mit Arrays und eliminiert eine Ebene unnötiger Tags. – jdweng
@jdweng Scheint, als ob ich das gleiche Ergebnis wie das letzte Code-Snippet bekomme. Der Stamm ändert sich zu diesem Element und alle Elemente danach werden in gesucht. Wie würde ich nach dem Lesen der Daten vom Widerstandselement die Wurzel zurück auf wiederherstellen? –
lightingft
Sie müssen den Widerstand entweder mit XML (s) oder in Ihren Klassen hinzufügen. – jdweng