Сериализация XML файла из Text Asset Unity
Возможна ли сериализация и десериализация xml файла из Text Asset'a? Сейчас это выполняется подобным образом, но при билде на iOS, xml отказывается работать. Я знаю, что проблема скорее всего связана с путями, если кто подскажет фикс этой проблемы благодарен.
Реализация:
public void Save()
{
var serializer = new XmlSerializer(typeof(StarsData));
using(var stream = new FileStream(Application.streamingAssetsPath + "/XML/StarsData.xml", FileMode.Create))
{
serializer.Serialize(stream, this);
}
}
public static StarsData Load()
{
var serializer = new XmlSerializer(typeof(StarsData));
using(var stream = new FileStream(Application.streamingAssetsPath + "/XML/StarsData.xml", FileMode.Open))
{
return serializer.Deserialize(stream) as StarsData;
}
}
Ответы (1 шт):
Автор решения: Honey Cake
→ Ссылка
Проблему решил таким образом:
public void Save()
{
var serializer = new XmlSerializer(typeof(StarsData));
using (var stream = new FileStream(Application.persistentDataPath + "/StarsData.xml", FileMode.Create))
{
serializer.Serialize(stream, this);
}
}
public static StarsData Load()
{
var serializer = new XmlSerializer(typeof(StarsData));
using (var stream = new FileStream(Application.persistentDataPath + "/StarsData.xml", FileMode.Open))
{
return serializer.Deserialize(stream) as StarsData;
}
}
public static void CheckForExists(TextAsset textAsset)
{
var path = Application.persistentDataPath + "/StarsData.xml";
if (!File.Exists(path))
{
var fs = new FileStream(path, FileMode.Create);
fs.Dispose();
}
File.WriteAllText(path, textAsset.text);
}
И в Awake сцены просто вызываю данный метод. На обоих платформах работает привосходно.