ConfigReader(三十七)—— ReadMoveCameraConfig

来源:互联网 发布:雨山区网络推广报价 编辑:程序博客网 时间:2024/06/05 15:46

目录为: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.xmlpublic 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;}
原创粉丝点击