如何使用unity在android上读取xml?

如何使用unity在android上读取xml?,android,xml,unity3d,Android,Xml,Unity3d,这是我的代码,它在unity editor中工作得非常好,但在android上却不行,它只读取xml文件的第一行。 我不知道它出了什么问题。 该文件存在于手机上,但它只读取第一行。 在unity编辑器中,它工作得非常好。 谢谢你的帮助 using System.Xml; using System.Xml.Serialization; public class Mission { [XmlAttribute("id")] public int Id; public string d

这是我的代码,它在unity editor中工作得非常好,但在android上却不行,它只读取xml文件的第一行。 我不知道它出了什么问题。 该文件存在于手机上,但它只读取第一行。 在unity编辑器中,它工作得非常好。 谢谢你的帮助

 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);
     }
    }
  }

你不需要在什么地方写“\”吗?比方说:phases.Save(Application.streamingassetpath+“\\”+“phases.xml”)

是否打算在StreamingAssetPath上保存,但从持久性加载?是的,我使用streamingAssets中的WWW类下载它,并将其写入持久性,然后再次从持久性加载它。这是我发现的唯一可行的方法,但它只读取我的第二个xml的第一行(我有两个xml文件)。我知道,这有点蹩脚,但如果您的xml不是很大,您可以安全地将其存储在PlayerPrefs中,并且对于不同的平台是安全的。我认为,这可能是一个字符编码问题,我想您已经检查过了:我记得使用指南S实现类似功能时没有问题
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");


 }