0
所以这里是我的代码,它在Unity编辑器中工作得很好,但在android上没有,它只读取xml文件的第一行。 我不知道它有什么问题。 该文件存在于手机上,但只读取第一行。 在统一编辑器中,它工作得很好。 感谢您的帮助。我该如何阅读Android上的XML与统一?
using System.Xml;
using System.Xml.Serialization;
public class Mission
{ [XmlAttribute("id")]
public int Id;
public string description;
public int ordre;
}
这里是自动加载XML
using System.IO;
using System.Xml.Serialization;
using System.Collections.Generic;
[XmlRoot("Missionss")]
public class Missions{
[XmlArray("Missions"), XmlArrayItem("Mission")]
public List<Mission> Mission_List;
private Missions(){}
public static Missions LoadFromFile(string filepath){
XmlSerializer serializer = new XmlSerializer(typeof(Missions));
using(FileStream stream = new FileStream(filepath, FileMode.Open))
{
return serializer.Deserialize(stream) as Missions;
}
}
public void Save (string path)
{
XmlSerializer serializer = new XmlSerializer (typeof(Missions));
using (FileStream stream = new FileStream (path, FileMode.Create)) {
serializer.Serialize (stream, this);
}
}
}
终于类:
public void LoadXML(){
string filename="/phases.xml";
string filename1="/missions.xml";
phases = Phases.LoadFromFile(Application.persistentDataPath + filename);
missions = Missions.LoadFromFile (Application.persistentDataPath + filename1);
}
public void save(){
phases.Save(Application.streamingAssetsPath + "phases.xml");
missions.Save(Application.streamingAssetsPath + "missions.xml");
}
是否打算保存在streamingAssetsPath上,但从持久性加载? –
是的,我使用来自streamingAssets的WWW类下载它,并且将它写入持久化中,然后再从持久化中加载它。这是我发现使其工作的唯一方法,但它只读取我的第二个xml的第一行(我有两个xml文件)。 –
我知道,这有点蹩脚,但如果你的xml不是很大,你可以安全地将它存储在PlayerPrefs中,并且它对于不同的平台是安全的。 –