ConfigReader(三)—— ReadAdvancedGuideConfig

目录为Assets/Scripts/ConfigReader/目录下
ReadAdvancedGuideConfig.cs

对应的Config文件的目录为:
Assets/Resources/Config/LowerGuide.xml

先来看看这个Config文件长什么样:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LowerGuide xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <info Taskid="1001">
        <Title>购买装备</Title>
        <Event>1</Event>
        <EventValue0>70,60,100</EventValue0>
        <EventValue2>6</EventValue2>
        <Content>CP点数足够时别忘了打开[00d5ff]商店[-]购买装备!当购买装备迷茫时[00d5ff]推荐装备[-]是个不错的选择!</Content>
        <CDTime>300000</CDTime>
        <LimitTime>3</LimitTime>
        <SmallTitle>装备购买</SmallTitle>
        <PrefabID>LowerGuide1</PrefabID>
        <PicID>1</PicID>
    </info>
    <info Taskid="1002">
        <Title>CP获取</Title>
        <Event>2</Event>
        <Content>[00d5ff]击杀小兵[-]可以获得少量CP点数,[00d5ff]击杀英雄[-]可以获得大量CP点数,[00d5ff]摧毁建筑[-]则可以使整个队伍的CP点数得到提升!</Content>
        <CDTime>180000</CDTime>
        <LimitTime>3</LimitTime>
        <SmallTitle>收益说明</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>2</PicID>
    </info>
    <info Taskid="1003">
        <Title>远离防御塔</Title>
        <Event>3</Event>
        <Content>[00d5ff]没有士兵时[-]最好[00d5ff]远离防御塔[-],脆弱的英雄很难独自承受防御塔的攻击</Content>
        <CDTime>60000</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>防御塔说明</SmallTitle>
        <PrefabID>LowerGuide1</PrefabID>
        <PicID>4</PicID>
    </info>
    <info Taskid="1004">
        <Title>怒气爆发</Title>
        <Event>4</Event>
        <Content>怒气值满时记得[00d5ff]点击头像[-]释放怒气!怒气不仅可以[00d5ff]强化你的技能[-],而且可以[00d5ff]刷新技能的冷却时间[-]!</Content>
        <CDTime>60000</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>怒气说明</SmallTitle>
        <PrefabID>LowerGuide1</PrefabID>
        <PicID>2</PicID>
    </info>
    <info Taskid="1005">
        <Title>灵魂之力</Title>
        <Event>5</Event>
        <Content>吸收的灵魂不仅可以[00d5ff]提升英雄的属性[-],而且会[00d5ff]提供一个崭新的技能[-]!</Content>
        <CDTime>60000</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>附身说明</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>3</PicID>
    </info>
    <info Taskid="1006">
        <Title>阵亡复活</Title>
        <Event>6</Event>
        <Content>阵亡之后需要[00d5ff]等待一段时间[-]让水晶能量来复活你,[00d5ff]英雄等级越高[-]需要复活的时间[00d5ff]越长[-],你也可以选择使用秘晶之力[00d5ff]立即复活[-],但这种力量[00d5ff]无法多次使用[-]</Content>
        <CDTime>300000</CDTime>
        <LimitTime>2</LimitTime>
        <SmallTitle>死亡复活</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>5</PicID>
    </info>
    <info Taskid="1007">
        <Title>祭坛仪式</Title>
        <Event>7</Event>
        <Content>把吸收的灵魂[00d5ff]奉献给祭坛[-]将会源源不断地[00d5ff]产出灵魂士兵[-],代价就是[00d5ff]失去灵魂给你提供的属性提升和技能[-]</Content>
        <CDTime>180000</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>放置祭坛</SmallTitle>
        <PrefabID>LowerGuide1</PrefabID>
        <PicID>3</PicID>
    </info>
    <info Taskid="1008">
        <Title>技能说明</Title>
        <Event>8</Event>
        <EventValue1>6</EventValue1>
        <Content>[00d5ff]长按技能键[-]可以查看技能说明,英雄等级[00d5ff]达到6级[-]会自动提升一次英雄技能等级,[00d5ff]达到11级[-]英雄技能等级会再度提升,当你看到敌方英雄[00d5ff]比你先到6级或11级时[-],请千万小心!</Content>
        <CDTime>0</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>查看技能说明</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>6</PicID>
    </info>
    <info Taskid="1009">
        <Title>吸收灵魂</Title>
        <Event>8</Event>
        <EventValue1>3</EventValue1>
        <Content>英雄[00d5ff]到达3级[-]就可以去[00d5ff]吸收灵魂[-]啦!别忘了这个[00d5ff]提升英雄属性学习新技能[-]的好机会哦!</Content>
        <CDTime>0</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>附身提示</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>3</PicID>
    </info>
    <info Taskid="1010">
        <Title>超级士兵</Title>
        <Event>9</Event>
        <EventValue1>107,108</EventValue1>
        <Content>[00d5ff]敌方祭坛被摧毁时[-]会出动[00d5ff]超级士兵[-],超级士兵会无情地碾碎敌方的普通士兵!</Content>
        <CDTime>0</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>超级兵提示</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>4</PicID>
    </info>
    <info Taskid="1011">
        <Title>二次吸收</Title>
        <Event>8</Event>
        <EventValue1>3</EventValue1>
        <Content>英雄[00d5ff]到达7级[-]可以[00d5ff]吸收二个灵魂[-],再一次的属性提升、多一个全新的技能!</Content>
        <CDTime>0</CDTime>
        <LimitTime>0</LimitTime>
        <SmallTitle>附身提示</SmallTitle>
        <PrefabID>LowerGuide</PrefabID>
        <PicID>1</PicID>
    </info>
</LowerGuide>

再看看ReadAdvancedGuideConfig.cs

using System;
using UnityEngine;
using System.Xml;
using System.Collections.Generic;

//这个应该是与新手教程相关的读取配置文件操作
public class ReadAdvancedGuideConfig
{
    XmlDocument xmlDoc = null;

    //构造函数
    //这个读取的Config配置文件在编辑器里的目录为:Assets/Resources/Config/LowerGuide.xml
    public ReadAdvancedGuideConfig(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 ();
        //LoadXml
        xmlDoc.LoadXml (xmlfile.text);

        XmlNodeList infoNodeList = xmlDoc.SelectSingleNode ("LowerGuide").ChildNodes;

        //(XmlNode xNode in infoNodeList)
        for (int i = 0; i < infoNodeList.Count; i++)
        {
            if ((infoNodeList[i] as XmlElement).GetAttributeNode("Taskid") == null)
            {
                continue;
            }

            string typeName = (infoNodeList [i] as XmlElement).GetAttributeNode ("Taskid").InnerText;

            AdvancedGuideInfo info = new AdvancedGuideInfo ();
            info.Taskid = Convert.ToInt32 (typeName);
            foreach (XmlElement xEle in infoNodeList[i].ChildNodes)
            {
                #region 搜索
                switch (xEle.Name)
                {
                case "Title":
                    info.Title = xEle.InnerText;
                    break;

                case "Event":
                    info.Event = (GuideEventType)Convert.ToInt32(xEle.InnerText);
                    break;

                case "EventValue0":
                    info.EventValue0 = GameMethod.ResolveToVector3(xEle.InnerText);
                    break;

                case "EventValue1":
                    info.EventValue1 = GameMethod.ResolveToIntList(xEle.InnerText);
                    break;

                case "EventValue2":
                    info.EventValue2 = Convert.ToInt32(xEle.InnerText);
                    break;

                case "Content":
                    info.Content = xEle.InnerText;
                    break;

                case "CDTime":
                    info.CDTime = Convert.ToSingle(xEle.InnerText);
                    break;

                case "LimitTime":
                    info.LimitTime = Convert.ToInt32(xEle.InnerText);
                    break;

                case "SmallTitle":
                    info.SmallTitle = xEle.InnerText;
                    break;

                case "PrefabID":
                    info.PrefabID = xEle.InnerText;
                    break;

                case "PicID":
                    info.PicID = xEle.InnerText;
                    break;
                }
                #endregion
            }

            ConfigReader.advancedGuideInfoDict.Add (info.Taskid, info);
        }
    }
}

//对应的XML文件是这样的:
/*
<info Taskid="1001">
    <Title>购买装备</Title>
    <Event>1</Event>
    <EventValue0>70,60,100</EventValue0>
    <EventValue2>6</EventValue2>
    <Content>CP点数足够时别忘了打开[00d5ff]商店[-]购买装备!当购买装备迷茫时[00d5ff]推荐装备[-]是个不错的选择!</Content>
    <CDTime>300000</CDTime>
    <LimitTime>3</LimitTime>
    <SmallTitle>装备购买</SmallTitle>
    <PrefabID>LowerGuide1</PrefabID>
    <PicID>1</PicID>
</info>
*/
public class AdvancedGuideInfo
{
    public int Taskid;
    public string Title;
    public GuideEventType Event;
    public Vector3 EventValue0;
    public List<int> EventValue1;
    public int EventValue2;
    public string Content;
    public float CDTime;
    public int LimitTime;
    public string SmallTitle;
    public string PrefabID;
    public string PicID;
}

public enum GuideEventType
{
    mAwayToBornPoint = 1,
    mGetCpPoint = 2,
    mEnterBuild = 3,
    mFullAngry = 4,
    mAbsorbSuccess = 5,
    mPlayerReborn = 6,
    mEnterAltar = 7,
    mPlayerLevelTo = 8,
    mBuildBreak = 9,
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值