角色出生点配置文件
<?xml version="1.0" encoding="utf-8" ?>
<Nodes>
<Node ID ="1001" RoleName="" Position="13.9f,0.56f,2.64f"/>
<Node ID ="1002" RoleName="" Position="13.9f,0.56f,2.64f"/>
<Node ID ="1003" RoleName="" Position="13.9f,0.56f,2.64f"/>
<Node ID ="1004" RoleName="" Position="13.9f,0.56f,2.64f"/>
<Node ID ="1005" RoleName="" Position="13.9f,0.56f,2.64f"/>
</Nodes>
游戏关卡配置文件
<?xml version="1.0" encoding="utf-8" ?>
<Nodes>
<Node ID="1001" No="1" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1002" No="2" Name="众联军陈兵虎牢关" Scene="Map_1001"/>
<Node ID="1003" No="3" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1004" No="4" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1005" No="5" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1006" No="6" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1007" No="7" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1008" No="8" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1009" No="9" Name="关云长温酒斩华雄" Scene="Map_1001"/>
<Node ID="1010" No="10" Name="关云长温酒斩华雄" Scene="Map_1001"/>
</Nodes>
配置文件解析器:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
using System;
/// <summary>
/// 游戏关卡配置
/// </summary>
public class LevelCfg
{
public int ID;
public int No;
public string Name;
public string Scene;
}
public class BornPointCfg
{
public int ID;
public string RoleName;
public string Position;
}
public class EasyXMLParse
{
private Dictionary<int, LevelCfg> _levelCfg = new Dictionary<int, LevelCfg>();
private Dictionary<int, BornPointCfg> _bornPoints = new Dictionary<int, BornPointCfg>();
private XmlNodeList GetXMLNodeList(string name)
{
//加载一个XML文本资源
TextAsset text = Resources.Load("Config/"+ name) as TextAsset;
//构造XML文本解析器
XmlDocument doc = new XmlDocument();
//将文本资源转化成XML格式
doc.LoadXml(text.text);
//选择节点路径下的所有节点
XmlNodeList nodeList = doc.SelectNodes("Nodes/Node");
return nodeList;
}
/// <summary>
/// 解析关卡配置文件
/// </summary>
/// <param name="name">关卡配置文件名</param>
public void LoadLevelCfg(string name)
{
XmlNodeList nodeList = GetXMLNodeList(name);
//遍历所有节点并将xml中的数据读取出来
for (int i = 0; i < nodeList.Count; i++)
{
XmlNode node = nodeList[i];
XmlElement elem = node as XmlElement;
elem.GetAttribute("ID");
//实例化关卡配置数据模型
LevelCfg cfg = new LevelCfg();
cfg.ID = Convert.ToInt32(elem.GetAttribute("ID"));
cfg.No = Convert.ToInt32(elem.GetAttribute("No"));
cfg.Name = elem.GetAttribute("Name");
cfg.Scene = elem.GetAttribute("Scene");
_levelCfg.Add(cfg.ID,cfg);
}
foreach (LevelCfg cfg in _levelCfg.Values)
{
Debug.LogError(cfg.ID + "," + cfg.No+"," + cfg.Name+","+cfg.Scene);
}
}
/// <summary>
/// 解析出生点的配置
/// </summary>
/// <param name="name">出生点配置文件名</param>
public void LoadBornPointCfg(string name)
{
XmlNodeList nodeList = GetXMLNodeList(name);
//遍历所有节点并将xml中的数据读取出来
for (int i = 0; i < nodeList.Count; i++)
{
XmlNode node = nodeList[i];
XmlElement elem = node as XmlElement;
//实例化关卡配置数据模型
BornPointCfg cfg = new BornPointCfg();
cfg.ID = Convert.ToInt32(elem.GetAttribute("ID"));
cfg.RoleName = elem.GetAttribute("RoleName");
cfg.Position = elem.GetAttribute("Position");
_bornPoints.Add(cfg.ID, cfg);
}
foreach (BornPointCfg cfg in _bornPoints.Values)
{
Debug.LogError(cfg.ID + ","+ "," + cfg.RoleName + "," + cfg.Position);
}
}
}