15555人加入学习
(100人评价)
通过实例学习:游戏的存档与读档(Unity 2017.2)

制作完成于2018-1-12

价格 免费

private void SaveByXML()
    {
        //创建Save对象并保存当前游戏状态
        SaveManager save = CreatSave();
        //创建一个XML的文件路径
        string filePath = Application.dataPath + "/MyPro/Save" + "/ByXML.txt";
        //创建XML文档
        XmlDocument Xmldoc = new XmlDocument();
        //创建根节点,最上层的节点
        XmlElement root = Xmldoc.CreateElement("SaveXML");
        //设置根节点中的值(键值对的值)
        root.SetAttribute("name", "XML储存信息");

        //继续创建根节点(怪物信息---(包含)怪物的位置,种类)
        XmlElement Monsters;
        XmlElement monstersposition;
        XmlElement monsterstype;

        //遍历save并将里面保存的数据转换成XML格式内容
        for (int i = 0; i < save.MonstersPosition.Count; i++)
        {
            //设置"怪物信息"节点名字
            Monsters = Xmldoc.CreateElement("怪物信息");
            //设置InnerText值,怪物位置和种类节点名字
            monstersposition = Xmldoc.CreateElement("位置");
            monstersposition.InnerText = save.MonstersPosition[i].ToString();
            monsterstype = Xmldoc.CreateElement("种类");
            monsterstype.InnerText = save.MonstersType[i].ToString();
            //设置节点间的层级关系root--Monsters--(monstersposition,monsterstype)
            Monsters.AppendChild(monstersposition);
            Monsters.AppendChild(monsterstype);
            root.AppendChild(Monsters);
        }

        //设置射击数和分数节点,并且设置层级关系
        XmlElement shootNum = Xmldoc.CreateElement("射击数");
        shootNum.InnerText = save.ShootNum.ToString();
        root.AppendChild(shootNum);
        XmlElement grade = Xmldoc.CreateElement("分数");
        grade.InnerText = save.Grade.ToString();
        root.AppendChild(grade);
        //里面子信息都设置好之后,将总root加到xmldoc文档里,并且保存
        Xmldoc.AppendChild(root);
        Xmldoc.Save(filePath);

        if (File.Exists(filePath))
        {
            UIScript._instance.ShowMessage("保存成功");
            StartCoroutine("IsMessage");
        }

    }

[展开全文]

授课教师

SIKI学院老师

课程特色

图文(1)
下载资料(1)
视频(34)