目录为:Assets/Scripts/ConfigReader/目录下
ReadMoveCameraConfig.cs
这个看上去好像是读地图边界信息的
对应的配置文件:
Assets/Resources/Config/CameraRemotion.cs
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CameraRemotion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<info un32MapID="1001">
<LeftEdge>50,86,39.5</LeftEdge>
<RightEdge>250,86,39.5</RightEdge>
<TopEdge>100,86,124</TopEdge>
<BottomEdge>100,86,45</BottomEdge>
<MovementSpeed>10</MovementSpeed>
</info>
<info un32MapID="1002">
<LeftEdge>20,82,61.5</LeftEdge>
<RightEdge>255,82,61.5</RightEdge>
<TopEdge>117.5,82,145</TopEdge>
<BottomEdge>117.5,82,22</BottomEdge>
<MovementSpeed>10</MovementSpeed>
</info>
</CameraRemotion>
ReadMoveCameraConfig.cs
using System;
using UnityEngine;
using System.Xml;
using System.Collections.Generic;
//这个看上去好像是读地图边界信息的
//Assets/Resources/Config/CameraRemotion.xml
public class ReadMoveCameraConfig
{
XmlDocument xmlDoc = null;
//构造函数
public ReadMoveCameraConfig(string xmlFilePath)
{
ResourceUnit xmlfileUnit = ResourcesManager.Instance.loadImmediate (xmlFilePath);
TextAsset xmlfile = xmlfileUnit.Asset as TextAsset;
if (!xmlfile)
{
Debug.LogError(" error infos: 没有找到指定的xml文件:"+xmlFilePath);
}
xmlDoc = new XmlDocument ();
xmlDoc.Load (xmlfile.text);
XmlNodeList infoNodeList = xmlDoc.SelectSingleNode ("CameraRemotion").ChildNodes;
for (int i = 0; i < infoNodeList.Count; i++)
{
if ((infoNodeList[i] as XmlElement).GetAttributeNode("un32MapID") == null)
{
continue;
}
string typeName = (infoNodeList [i] as XmlElement).GetAttributeNode ("un32MapID").InnerText;
CameraRemotionConfigInfo cameraInfo = new CameraRemotionConfigInfo ();
cameraInfo.un32MapID = Convert.ToInt32 (typeName);
foreach(XmlElement xEle in infoNodeList[i].ChildNodes)
{
switch(xEle.Name)
{
case "LeftEdge":
cameraInfo.mLeftEdge = GameMethod.ResolveToVector3 (xEle.InnerText);
break;
case "RightEdge":
cameraInfo.mRightEdge = GameMethod.ResolveToVector3 (xEle.InnerText);
break;
case "TopEdge":
cameraInfo.mTopEdge = GameMethod.ResolveToVector3 (xEle.InnerText);
break;
case "BottomEdge":
cameraInfo.mBottomEdge = GameMethod.ResolveToVector3 (xEle.InnerText);
break;
case "MovementSpeed":
cameraInfo.mMovementSpeed = Convert.ToInt32 (xEle.InnerText);
break;
}
}
ConfigReader.cameraXmlInfoDict.Add (Convert.ToInt32 (typeName), cameraInfo);
}
}
}
/*
<info un32MapID="1001">
<LeftEdge>50,86,39.5</LeftEdge>
<RightEdge>250,86,39.5</RightEdge>
<TopEdge>100,86,124</TopEdge>
<BottomEdge>100,86,45</BottomEdge>
<MovementSpeed>10</MovementSpeed>
</info>
*/
public class CameraRemotionConfigInfo: System.Object
{
public int un32MapID;
public Vector3 mLeftEdge;
public Vector3 mRightEdge;
public Vector3 mTopEdge;
public Vector3 mBottomEdge;
public int mMovementSpeed;
}