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

制作完成于2018-1-12

价格 免费

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

[展开全文]

授课教师

SIKI学院老师

课程特色

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