private void LoadByXML()
{
//创建一个XML的文件路径
string filePath = Application.dataPath + "/MyPro/Save" + "/ByXML.txt";
if (File.Exists(filePath))
{
//创建save对象
SaveManager save = new SaveManager();
//创建XML文档出来读取filepath路径文件
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(filePath);
//通过节点名字来获取元素,结果为xmlnodelist类型
XmlNodeList Monsters = xmldoc.GetElementsByTagName("怪物信息");
//遍历所有的Monsters里的节点,并获得子节点和子节点的InnerText
if (Monsters.Count != 0)
{
foreach(XmlNode Monster in Monsters)
{
//遍历"怪物信息"里的位置和种类,并把得到的值保存到save里
XmlNode monsterposition = Monster.ChildNodes[0];
int monsterpositionIndex = int.Parse(monsterposition.InnerText);
save.MonstersPosition.Add(monsterpositionIndex);
//这里的ChildNodes[1]指的是在Monster里第2个节点
XmlNode monstertype = Monster.ChildNodes[1];
int monstertypeIndex = int.Parse(monstertype.InnerText);
save.MonstersType.Add(monstertypeIndex);
}
}
//得到存储的射击数和分数
XmlNodeList shootNum = xmldoc.GetElementsByTagName("位置");
int shootNumIndex = int.Parse(shootNum[0].InnerText);
save.ShootNum = shootNumIndex;
XmlNodeList grade = xmldoc.GetElementsByTagName("分数");
int gradeIndex = int.Parse(grade[0].InnerText);
save.Grade = gradeIndex;
UIScript._instance.ShowMessage("成功读取文档");
StartCoroutine("IsMessage");
//通过读档信息重置游戏状态
SetGame(save);
}
else
{
UIScript._instance.ShowMessage("存档文件不存在");
StartCoroutine("IsMessage");
}
}