ConfigReader(二十九)—— ReadHeroHeadConfig

来源:互联网 发布:网络攻击监测网站 编辑:程序博客网 时间:2024/05/16 17:42

目录为: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.xmlpublic 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}
阅读全文
0 0
原创粉丝点击