目录为:Assets/Scripts/ConfigReader/目录下
ReadGuidePathTaskConfig.cs
对应的配置文件:
Assets/Resources/Config/path.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<path xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<info id="1001">
<point>59,61,109</point>
<dis>6</dis>
</info>
<info id="1002">
<point>65,61,114</point>
<dis>6</dis>
</info>
<info id="1003">
<point>94,61,123</point>
<dis>6</dis>
</info>
<info id="1004">
<point>82,61,109</point>
<dis>4</dis>
</info>
</path>
ReadGuidePathTaskConfig.cs
using System;
using UnityEngine;
using System.Xml;
using System.Collections.Generic;
//Guide相关
//对应的配置文件:Assets/Resources/Config/path.xml
public class ReadGuidePathTaskConfig
{
XmlDocument xmlDoc = null;
//构造函数
public ReadGuidePathTaskConfig(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 ("path").ChildNodes;
for (int i = 0; i < infoNodeList.Count; i++)
{
if ((infoNodeList[i] as XmlElement).GetAttributeNode("id") == null)
{
continue;
}
string typeName = (infoNodeList [i] as XmlElement).GetAttributeNode ("id").InnerText;
GuidePathInfo info = new GuidePathInfo ();
info.mTaskId = Convert.ToInt32 (typeName);
foreach (XmlElement xEle in infoNodeList[i].ChildNodes)
{
switch (xEle.Name)
{
case "point":
info.mDesPos = GameMethod.ResolveToVector3 (Convert.ToString (xEle.InnerText));
break;
case "dis":
info.mDistance = Convert.ToSingle (xEle.InnerText);
break;
}
}
ConfigReader.guidePathInfoDict.Add (info.mTaskId, info);
}
}
}
/*
XML格式:
<info id="1001">
<point>59,61,109</point>
<dis>6</dis>
</info>
*/
public class GuidePathInfo
{
public int mTaskId;
public Vector3 mDesPos;
public float mDistance;
}