PersistentDataPath文件在设备上不起作用,但在3d中很好

时间:2014-04-11 10:49:27

标签: c# unity3d

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在运行时在设备上保存

2 个答案:

答案 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