目录为:Assets/Scripts/ConfigReader/目录下
ReadHeroHeadConfig.cs
英雄头像信息
对应XML文件:
Assets/Resources/Config/HeadSelect.xml
部分如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<HeadSelect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<info HeadID="1">
<Head_Name>精灵男</Head_Name>
<Head_Type>1</Head_Type>
<Atlas>TeamHead2</Atlas>
<Atlas_Num>16</Atlas_Num>
<Used_Condition>0</Used_Condition>
<Account_Level>1</Account_Level>
</info>
<info HeadID="2">
<Head_Name>精灵女</Head_Name>
<Head_Type>2</Head_Type>
<Atlas>TeamHead2</Atlas>
<Atlas_Num>17</Atlas_Num>
<Used_Condition>0</Used_Condition>
<Account_Level>1</Account_Level>
</info>
<info HeadID="3">
<Head_Name>智子</Head_Name>
<Head_Type>2</Head_Type>
<Atlas>TeamHead2</Atlas>
<Atlas_Num>32</Atlas_Num>
<Used_Condition>0</Used_Condition>
<Account_Level>1</Account_Level>
</info>
ReadHeroHeadConfig.cs
using System;
using UnityEngine;
using System.Xml;
using System.Collections.Generic;
// 英雄头像
//对应配置文件:Assets/Resources/Config/HeadSelect.xml
public class ReadHeroHeadConfig
{
XmlDocument xmlDoc = null;
//构造函数
public ReadHeroHeadConfig(string xmlFilePath)
{
ResourceUnit xmlFileUnit = ResourcesManager.Instance.loadImmediate (xmlFilePath, ResourceType.ASSET);
TextAsset xmlfile = xmlFileUnit.Asset as TextAsset;
if (!xmlfile)
{
Debug.LogError(" error infos: 没有找到指定的xml文件:" + xmlFilePath);
}
xmlDoc = new XmlDocument ();
xmlDoc.LoadXml (xmlfile.text);
XmlNodeList infoNodeList = xmlDoc.SelectSingleNode ("HeadSelect").ChildNodes;
for (int i = 0; i < infoNodeList.Count; i++)
{
if ((infoNodeList[i] as XmlElement).GetAttributeNode("HeadID") == null)
{
continue;
}
string typeName = (infoNodeList [i] as XmlElement).GetAttributeNode ("HeroID").InnerText;
HeadSelectConfigInfo headSelectInfo = new HeadSelectConfigInfo ();
headSelectInfo.HeroHeadID = Convert.ToInt32 (typeName);
foreach (XmlElement xEle in infoNodeList[i].ChildNodes)
{
switch (xEle.Name)
{
case "Head_Name":
headSelectInfo.HeroHeadName = Convert.ToString (xEle.InnerText);
break;
case "Head_Type":
headSelectInfo.HeroHeadType = GameMethod.ResolveToIntList (xEle.InnerText);
break;
case "Atlas":
headSelectInfo.HeroHeadAtlas = Convert.ToString (xEle.InnerText);
break;
case "Atlas_Num":
headSelectInfo.HeroHeadAtlas_Num = xEle.InnerText;
break;
case "Used_Condition":
headSelectInfo.HeroUsedCondition = Convert.ToInt32 (xEle.InnerText);
break;
case "Account_Level":
headSelectInfo.HeroUsedLevel = Convert.ToInt32 (xEle.InnerText);
break;
}
}
ConfigReader.headSelectXmlInfoDict.Add (headSelectInfo.HeroHeadID, headSelectInfo);
}
}
}
/*
XML格式:
<info HeadID="5">
<Head_Name>冻法师</Head_Name>
<Head_Type>1,2</Head_Type>
<Atlas>TeamHead2</Atlas>
<Atlas_Num>7</Atlas_Num>
<Used_Condition>0</Used_Condition>
<Account_Level>1</Account_Level>
</info>
*/
public class HeadSelectConfigInfo: System.Object
{
#region 英雄头像信息
public string HeroHeadName; //英雄名
public int HeroUsedLevel;
public int HeroUsedCondition; //英雄使用条件(等级)
public int HeroHeadID; //英雄头像编号
public string HeroHeadAtlas; //英雄头像所在图集
public string HeroHeadAtlas_Num; //英雄头像所在图集序号
public List<int> HeroHeadType; //英雄头像类型(性别)
#endregion
}