使用WWW获取本地文件夹的XML配置文件
Unity3D读取本地文件可以使用Resources.Load来读取放在Resources文件夹下的文件,如果不是放在该文件夹下,则可以通过WWW类来读取。
譬如读取xml的配置文件。
/// <summary>
/// 读取颜色配置
/// </summary>
/// <returns></returns>
public List<Color> GetColorXml()
{
string xmlPath = Application.dataPath + @"/Configs/Config.xml";
List<Color> colorList = new List<Color>();
if (File.Exists(xmlPath))
{
XmlDocument xmlDoc = new XmlDocument();
WWW www = new WWW("file:// " + xmlPath);
while (true)
{
if (www.isDone)
{
System.IO.StringReader stringReader = new System.IO.StringReader(www.text);
stringReader.Read(); // skip BOM
xmlDoc.LoadXml(stringReader.ReadToEnd());
//xmlDoc.LoadXml(www.text);
break;
}
} //xmlDoc.Load(xmlPath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Config/ColorConfig").ChildNodes; //遍历每一个节点,拿节点的属性以及节点的内容
foreach (XmlElement xe in nodeList)
{
//Debug.Log("Attribute :" + xe.GetAttribute("id"));
//Debug.Log("NAME :" + xe.Name);
if (xe.Name != "Color")
{
continue;
} Color c1 = new Color();
foreach (XmlElement x1 in xe.ChildNodes)
{
if (x1.Name == "r")
{
float.TryParse(x1.InnerText, out c1.r);
c1.r = c1.r > 1f ? c1.r / 255f : c1.r;
}
if (x1.Name == "g")
{
float.TryParse(x1.InnerText, out c1.g);
c1.g = c1.g > 1f ? c1.g / 255f : c1.g;
}
if (x1.Name == "b")
{
float.TryParse(x1.InnerText, out c1.b);
c1.b = c1.b > 1f ? c1.b / 255f : c1.b;
}
if (x1.Name == "a")
{
float.TryParse(x1.InnerText, out c1.a);
c1.a = c1.a > 1f ? c1.a / 255f : c1.a;
}
}
colorList.Add(c1);
} }
return colorList; }
如果读取的xml文件有问题,可能是编码格式引起的,可以使用StringReader来读取代替www.text
xml相关问题参考:http://answers.unity3d.com/questions/10904/xmlexception-text-node-canot-appear-in-this-state.html
使用WWW获取本地文件夹的XML配置文件的更多相关文章
- express,node.js实现获取本地文件夹下面的全部图片文件
http://www.luyixian.cn/javascript_show_169354.aspx 按照网上的教程试了多次,处理了各种结果后还有报错, 最后的报错是cant find module ...
- android红米等关于读取本地文件夹图片获取路径的问题的解决
在Android开发中,有从本地文件夹中读取图片的功能,使用一下代码打开图片选择列表: Intent intent = new Intent(); intent.setAction(Intent. ...
- git中使用命令将远程仓库拉取项目在本地文件夹
在有些时候,我们往往从github或者gitlab或者coding上面直接下载项目下来运行,但是这种情况往往没有使用git远程拉取来的安全(或者叫装逼), 所以这里我以gitLab为例子,说一下如何将 ...
- IDEA无法通过类加载器获取resources文件夹配置文件解决办法
问题描述:如果IDEA无法通过类加载器获取resources文件夹配置文件,一定是Classpath编译文件没有导致的. 1.在通过配置文件来获取文件信息时,在resouces文件中放入了filena ...
- res文件夹及xml资源文件详解
目录 一.values文件:存放字符串(strings).颜色(colors).尺寸(dimens).数组(arrays).样式(styles类似于CSS文件).类型等资源 二.drawable:存放 ...
- 脚本工具(获取某个文件夹下的所有图片属性批量生成css样式)
问题描述: 由于有一次工作原因,就是将某个文件夹下的所有图片,通过CSS描述他们的属性,用的时候就可以直接引用.但是我觉得那个文件夹下的图片太多,而且CSS文件的格式又有一定的规律,所有想通过脚本来生 ...
- Fiddler高级技巧 - 映射路径到本地文件夹
适用场景: 你是前端开发人员,要开发一个小模块,需要用到线上的环境(账号.数据.跨域等),但你又没有权限往线上传文件 你是移动测试人员,需要将一组接口的返回结果替换为另一组,最简单的办法就是使用Fid ...
- nodejs:本地文件夹http服务器http-server
一.已经安装nodejs的电脑,有一个方便通过http访问本地文件夹.文件夹服务器 static files over HTTP,并不是我们平常说的node那个web服务器哦 二.好处 可以方便实现跨 ...
- 两个简单的python文件,实现删除本地文件夹和mongodb数据库的内容
删除本地文件夹: import os , string , datetime ; str = '/home/niuguoqin/tmp/tomcat/'; b = (datetime.datetime ...
随机推荐
- Tools
Database: Online Schema Tool: http://dbdsgnr.appspot.com/ Orcale --> SQL developer MySQL--> To ...
- 微信电脑版-微信for windows客户端发布
12月份微信Windows版客户端1.0 Alpha推出,昨天微信for windows 1.0客户端(测试版)发布更新,超过三亿人使用的聊天应用,现在登录Windows桌面.你可以在Windows上 ...
- 【阮一峰】深入研究URL编码问题及JavaScript相应的解决方案
作者: 阮一峰 日期: 2010年2月11日 一.问题的由来 URL就是网址,只要上网,就一定会用到. 一般来说,URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和符号.比如,世界上 ...
- SqlServer数据库大型应用解决方案总结
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题. 一 ...
- ubuntu配置 Java SE 1.6
今天编译android 4.0时提示如下错误: You are attempting to build with the incorrect version of java. Your versi ...
- 十三. JEB破解三
一.启动环境 JEB 2.0Demo版本启动后出现这样一个界面 当前环境算出的许可证数据 48000000BDEAE192E4CEFC82B34C2AC67F3A85DF5C0E262E421772C ...
- JavaScript 加载动画Canvas 设计
var c = document.getElementById('c'), ctx = c.getContext('2d'), cw = c.width = 400, ch = c.height = ...
- mysql ERROR 1045 (28000): 错误解决办法
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ERROR 1045 (28000 ...
- Path之Data属性语法A命令
<Path Width="300" Height="300" Fill="Red" Data="M 100,100 L 10 ...
- windows7 启用管理员账户
在虚拟机中安装了windows7,方便使用qq,使用百度云,office等常用的软件.虚拟机使用的oracle的VirtualBox,个人使用体验不错,最棒的功能是能将物理机中的磁盘映射到虚拟机中网络 ...