Exemple la classe Settings:
using System.Xml.Serialization;
using System.IO;
using System.Collections.Generic;
public class Settings
{
public int val0; //Ce membre sera serialisé car il est public
private int val1; //Ce membre ne sera pas sérialisé car il est private
public List<MyObjectDesc> MyObjectList; //Les listes sont supportées
public Settings()
{
}
public Settings(int v0, int v1)
{
val0 = v0;
val1 = v1;
}
}
Voici le code pour la serialiser:
public static Settings mSettings = new Settings(0,1);
...
TextWriter writer = new StreamWriter(Application.persistentDataPath+"/mySettings.xml");
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
serializer.Serialize(writer, mSettings);
writer.Close();
Voici le code pour la deserialiser:
TextReader reader = new StreamReader(Application.persistentDataPath+"/mySettings.xml");
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
mSettings = (Settings)serializer.Deserialize(reader);
reader.Close();
Une variante lorsqu'on recupere le fichier xml dans les resources:
TextAsset GameAsset = Resources.Load(filename, typeof(TextAsset)) as TextAsset;
TextReader reader = new StringReader(GameAsset.text);
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
Settings mSettings = ( Settings )serializer.Deserialize(reader) as Settings;
reader.Close();
On a le possibilisté d'influer sur le format du xml.
Pour spécifier le root dans le xml (par defaut il prend le nom de la classe):
[XmlRoot("RootSettings")] public class Settings
....
Pour ignorer un membre public:
[XmlIgnore] public int val0;
Pour faire en sorte que le membre soit stocké en tant que parametre et non de node:
[XmlAttribute("myParam")] public int val0;
Pour specifier le nom du node:
[XmlElement(ElementName="marker")] public List<cPlane> marker;
Pour specifier le nom du node:
[XmlElement(ElementName="marker")] public List<cPlane> marker;
--------------------
Plus d'information sur les methodes de load de data xml dans Unity:
http://www.mindthecube.com/blog/2009/11/reading-text-data-into-a-unity-game
Plus d'information sur les methodes de load de data xml dans Unity:
http://www.mindthecube.com/blog/2009/11/reading-text-data-into-a-unity-game
Aucun commentaire:
Enregistrer un commentaire