【Unity开发教程】从零开始开发i wanna系列游戏(3)读取游戏存档

太阳战士索拉尔来啦,感觉unity有个bug,路径设置对了依然会找不到,不如直接公开,把data文件拖进去using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
public class ResourceRvc : MonoBehaviour
{
public static ResourceRvc Instance; // 单例
public XmlDocument dataDocument; // 用于存储XML文档
public XmlNodeList dataNodeList; // 用于存储XML节点列表
public TextAsset xmlFile; // 在Inspector面板中手动设置
public void Initsvc()
{
Instance = this; // 初始化单例
InitSaveDate(); // 初始化存档数据
}
private void InitSaveDate()
{
dataDocument = new XmlDocument(); // 创建新的XML文档
dataDocument.LoadXml(xmlFile.text); // 加载XML文件内容
dataNodeList = dataDocument.SelectSingleNode("data").ChildNodes; // 获取"data"节点的所有子节点
}
public struct SaveData // 存档数据结构
{
public string state; // 状态
public int deathCount; // 死亡次数
public string time; // 时间
public string savePosition; // 存档位置
// public string 最好把角色的子集状态也储存
}
public SaveData GetSaveData(int dataChooseNum) // 获取存档数据
{
XmlElement element = (XmlElement)dataNodeList[dataChooseNum]; // 获取指定索引的节点
SaveData saveData = new SaveData(); // 创建新的存档数据
saveData.state = element.GetAttribute("state"); // 获取状态
saveData.deathCount = int.Parse(element.GetAttribute("death")); // 获取死亡次数
saveData.time = element.GetAttribute("time"); // 获取时间
saveData.savePosition = element.GetAttribute("save_position"); // 获取存档位置
return saveData; // 返回存档数据
}
}