xml.Load(Application.persistentDataPath+"/PlayerData.xml");
XmlNode root = xml.FirstChild;
root = xml.LastChild;
if(root.InnerText == "")
{
lnoInstance.EnlistAllLevels();
foreach(LevelNamesStatus lno in LevelLoadingArray )
{
XmlNode child = CreateNode(xml,lno.Lname,lno.winStatus,lno.playingStatus);
root.AppendChild(child);
}
}
else
{
if(LevelLoadingArray.Count!=0 && LevelLoadingArray.Count<=13)
{ LevelNamesStatus[] array = CtrlLLoadingA.LevelLoadingArray.ToArray();
foreach(LevelNamesStatus n in array)
{
// Debug.Log(n.Lname+n.playingStatus);
}
foreach(XmlNode xmn in root)
{
xmn.ChildNodes[0].InnerText = LevelLoadingArray[f].Lname;
xmn.ChildNodes[1].InnerText = LevelLoadingArray[f].winStatus.ToString();
xmn.ChildNodes[2].InnerText = LevelLoadingArray[f].playingStatus.ToString();
f++;
}
}
if( LevelLoadingArray.Count==0)
{
RefillArray(root);
}
}
xml.Save(Application.persistentDataPath+"/PlayerData.xml");
无法在persistentDataPath上获取xml文件..它在Unity 3d上正常工作但设备或模拟器无法获取该xml文件。 StorageExceptError在运行时在设备上保存
答案 0 :(得分:0)
始终建议不要使用&#39; /&#39;或者&#39; \&#39; chars硬编码在任何地方。请尝试使用Path.DirectorySeparatorChar
(请参阅Unity docs)。
在这种情况下应该是:
xml.Load(Application.persistentDataPath + Path.DirectorySeparatorChar + "PlayerData.xml");
然后你可以肯定,在所有类型的设备或平台上,至少路径是正确的。
答案 1 :(得分:0)
Application.persistentDataPath有两个基于Write Access设置的路径,你可以在Build Setting&gt;中找到它。播放器设置&gt;默认情况下,其他设置仅限内部设置。意味着路径应该指向/data/data/com.your.appid/files,这仅用于开发,用户在没有root android设备的情况下找不到这个文件。
如果您将Write Access设置为外部(SD卡)或将WRITE_ EXTERNAL_STORAGE权限添加到AndroidManifest.xml中,Application.persistentDataPath将指向您的SD卡的Android / file / com.your.appid / files。
我遇到了同样的问题并修复了它!
http://answers.unity3d.com/questions/203852/how-to-access-persistent-data-path-in-android-phon.html