Unity3D 使用XML进行简单的配置文件改动

摘要:
接下来,在资源下创建场景和脚本目录,用于保存当前场景和我们编写的脚本。右键单击Scripts目录下创建一个C#脚本,然后我们开始在脚本中创建一个XML文件和相应的目录。在外部声明私有字符串_ sXmlPath;用于显示xml路径。

1、首先是看看效果图:

開始执行项目例如以下图所看到的

Unity3D 使用XML进行简单的配置文件改动第1张

2、点击绿色button改动配置文件再点击改动button成功改动方块颜色Unity3D 使用XML进行简单的配置文件改动第2张

Unity3D 使用XML进行简单的配置文件改动第3张

3、接了下是实现的过程:

首先在Hierarchy创建一个cube。其次在Assets下分别创建Scenes和Scripts目录,各自是用来保存的的当前的场景和我们所写的脚本。在Scripts目录以下右键创建一个C#脚本,接我们在脚本里面開始创建一个XML文件和相应的目录。在外部声明一个private string m_sXmlPath;用来显示xml路径。接着在Start()方法中配置和创建XML,

void Start () {
m_sXmlPath = Application.dataPath + "/Configs/config.xml";
Debug.Log("Application Path:" + Application.dataPath);
Debug.Log("config.xml Path:" + m_sXmlPath);
CreateXml();//创建XML
}

创建XML方法例如以下:

private void CreateXml(){
if(!File.Exists(m_sXmlPath))//假设不存在这个文件夹我们就创建一个这种文件夹

            {
XmlDocument xmlDoc = new XmlDocument();
XmlElement data = xmlDoc.CreateElement("data");
xmlDoc.AppendChild(data);
XmlElement color = xmlDoc.CreateElement("color");
data.AppendChild(color);
xmlDoc.Save(m_sXmlPath);
Debug.Log("创建XML完成");
}
}

创建形成之后我们点击XML会有例如以下的信息在里面:

Unity3D 使用XML进行简单的配置文件改动第4张

相应的我们须要更新我们改动的XML文件:

private void UpdateXML(uint color){
if(File.Exists(m_sXmlPath))

              {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(m_sXmlPath);
XmlNode colorNode = xmlDoc.SelectSingleNode("data/color");
colorNode.InnerText = color.ToString();
xmlDoc.Save(m_sXmlPath);
Debug.Log("改动成功:" + color);

}
}

接着就是实现方块的颜色的改动:

private void ModifyCubeColor(){
if(File.Exists(m_sXmlPath)){
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(m_sXmlPath);
XmlNode colorNode = xmlDoc.SelectSingleNode("data/color");
uint color = Convert.ToUInt32(colorNode.InnerText);
Debug.Log("读取的Color:" + color);


GameObject cube = GameObject.Find("Cube");
if(color == 0xff0000){
cube.renderer.material.color = Color.red;
}else if(color == 0x00ff00){
cube.renderer.material.color = Color.green;
}
}
}

我们要实现如效果图中的点击button就会改动相应的方块,我们须要创建我们的button:

void OnGUI(){
//create modify color buttons
GUI.Label(new Rect(10,10,200,30),"改动配置文件");
if(GUI.Button(new Rect(10,40,100,30),"红色")){
UpdateXML(0xff0000);
}
if(GUI.Button(new Rect(10,70,100,30),"绿色")){
UpdateXML(0x00ff00);
}


//create button  use to modify Cube'color
GUI.Label(new Rect(10,110,200,30),"依据配置文件改动方块");
if(GUI.Button(new Rect(10,140,200,30),"改动方块")){
ModifyCubeColor();
}

}

免责声明:文章转载自《Unity3D 使用XML进行简单的配置文件改动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇浅谈SQL Server中的三种物理连接操作举个栗子看如何做MySQL 内核深度优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Unity3D for iOS初级教程:Part 1/3(上)

                                                              Unity3D for iOS初级教程:Part 1/3(上) 这篇教材是来自教程团队成员 Christine Abernathy, 他是Facebook的开发支持团队的工程师。Unity是最为流行的游戏引擎之一。这是有充分缘由的:U...

vue,基于element的tree组件封装

封装组件代码 // 组件:树 /* 参数说明-属性: 1.treeData:展示数据(array) 2.treeEmptyText:内容为空的时候展示的文本(String) 3.treeNodeKey:每个树节点用来作为唯一标识的属性,整棵树应该是唯一的(String) 4.treeRenderAfterExpand:是否在第一次展开某个树节点后才渲染其子...

Cypress web自动化39-.trigger()常用鼠标操作事件

前言 在web页面上经常遇到的鼠标事件有:鼠标悬停操作,鼠标右键,鼠标长按,拖拽等操作 trigger() trigger 方法用于在 DOM 元素上触发事件 语法使用示例 .trigger(eventName) .trigger(eventName, position) .trigger(eventName, options) .trigger(even...

unity3D 对话系统的制作

准备两个C#代码+1个txt文本 多数报错都是代码的公开变量没有获取到,导致空引用! 1:对话框内容文本文件.txt 自行准备文本信息(如果显示的是乱码,请更改编码格式为UTF-8) A 你好啊,勇士! B 你好,老爷爷. A 欢迎来到帕利镇,我是这的村长,萨罗特. B 喔,原来是村长啊,您好! 2:NPC代码,挂在到要对话的物体对象身上 1 using...

Unity3D中抖屏(抖动相机)效果的简单实现

这里是一个简单的摄像机抖动方法,记录下来便于查阅。 public class CameraShake : MonoBehaviour { // 抖动目标的transform(若未添加引用,怎默认为当前物体的transform) public Transform camTransform; //持续抖动的时长 public...

SpringMVC in IDEA开发实践

按照上篇装过Tomcat之后。 本机本来装了IDEA和Maven。 参考以下这篇 https://my.oschina.net/gaussik/blog/385697 《使用IntelliJ IDEA开发SpringMVC网站(一)开发环境》 其中初始化项目的时候非常慢,需要参考以下这篇来进行: http://www.cnblogs.com/beiyere...