Unity 端:
XML 配置文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<item ID="1">
<surname>赵</surname>
<man>夷</man>
<woman>妃</woman>
</item>
<item ID="2">
<surname>孙</surname>
<man>洛</man>
<woman>羽</woman>
</item>
<item ID="3">
<surname>李</surname>
<man>乐</man>
<woman>青</woman>
</item>
<item ID="4">
<surname>周</surname>
<man>锋</man>
<woman>月</woman>
</item>
<item ID="5">
<surname>吴</surname>
<man>冷</man>
<woman>明</woman>
</item>
</root>
加载配置文件
public void InitSvc() {
Instance = this;
InitRDNameCfg(PathDefine.RDNameCfg);
}
解析配置文件
#region InitCfgs
#region 随机名字
private List<string> surnameLst = new List<string>();
private List<string> manLst = new List<string>();
private List<string> womanLst = new List<string>();
private void InitRDNameCfg(string path) {
TextAsset xml = Resources.Load<TextAsset>(path);
if (!xml) {
PECommon.Log("xml file:" + path + " not exist", LogType.Error);
}
else {
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml.text);
XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;
for (int i = 0; i < nodLst.Count; i++) {
XmlElement ele = nodLst[i] as XmlElement;
if (ele.GetAttributeNode("ID") == null) {
continue;
}
//int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText);
foreach (XmlElement e in nodLst[i].ChildNodes) {
switch (e.Name) {
case "surname":
surnameLst.Add(e.InnerText);
break;
case "man":
manLst.Add(e.InnerText);
break;
case "woman":
womanLst.Add(e.InnerText);
break;
}
}
}
}
}
获取随机名字
public string GetRDNameData(bool man = true) {
string rdName = surnameLst[PETools.RDInt(0, surnameLst.Count - 1)];
if (man) {
rdName += manLst[PETools.RDInt(0, manLst.Count - 1)];
}
else {
rdName += womanLst[PETools.RDInt(0, womanLst.Count - 1)];
}
return rdName;
}
#endregion
服务器端:
using System.Xml;
using System.Collections.Generic;
using System;
public class CfgSvc {
private static CfgSvc instance = null;
public static CfgSvc Instance {
get {
if (instance == null) {
instance = new CfgSvc();
}
return instance;
}
}
public void Init() {
InitGuideCfg();
}
#region 自动引导配置
private Dictionary<int, GuideCfg> guideDic = new Dictionary<int, GuideCfg>();
private void InitGuideCfg() {
XmlDocument doc = new XmlDocument();
doc.Load(@"D:\SyncTuts\DarkGod\Client\Assets\Resources\ResCfgs\guide.xml");
XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;
for (int i = 0; i < nodLst.Count; i++) {
XmlElement ele = nodLst[i] as XmlElement;
if (ele.GetAttributeNode("ID") == null) {
continue;
}
int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText);
GuideCfg mc = new GuideCfg {
ID = ID
};
foreach (XmlElement e in nodLst[i].ChildNodes) {
switch (e.Name) {
case "coin":
mc.coin = int.Parse(e.InnerText);
break;
case "exp":
mc.exp = int.Parse(e.InnerText);
break;
}
}
guideDic.Add(ID, mc);
}
PECommon.Log("GuideCfg Init Done.");
}
public GuideCfg GetGuideCfg(int id) {
GuideCfg agc = null;
if (guideDic.TryGetValue(id, out agc)) {
return agc;
}
return null;
}
#endregion
}
public class GuideCfg {
public int ID;
public int coin;
public int exp;
}