丢失应用更新中保存的数据

时间:2015-05-11 23:15:59

标签: android unity3d

在创建我的Unity3D应用程序的新版本时,我测试了在店内安装的基础上加载新版本。侧载应用程序无法再找到从店内版本保存的文件。

似乎问题是Application.persistentDataPath在两个应用程序版本之间有所不同。

在BuildSettings下:

Install Location: Prefer External
Write Access:     Internal Only

AndroidManifest.xml似乎没有关于安装位置/写访问位置的信息。

我不介意将安装位置更改为强制内部,如果这有助于此更新和/或将来。但我不确定那个设置是做什么的。

我使用C#的XMLSerializer保存XML文件,然后使用Application.persistentDataPath将它们写入FileStream。

XmlSerializer serializer = new XmlSerializer(typeof([CLASS]));
FileStream stream = new FileStream( Application.persistentDataPath + "/[FILENAME].xml", FileMode.Create);    
serializer.Serialize( stream, [OBJECT]);    
stream.Close();

1 个答案:

答案 0 :(得分:0)

您可以尝试在PlayerPref中保存XML字符串,如下所示:

PlayerPrefs.SetString("SaveGameName", yourXML);

得到它:

myxml = PlayerPrefs.GetString("SaveGameName");

过去,PlayerPrefs类对我来说对持久数据很有用。我知道即使您从应用商店安装新版本,这些数据仍然存在。

http://docs.unity3d.com/ScriptReference/PlayerPrefs.html这是关于它的文档。