博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3D 使用XML进行简单的配置文件改动
阅读量:5798 次
发布时间:2019-06-18

本文共 2036 字,大约阅读时间需要 6 分钟。

1、首先是看看效果图:

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

2、点击绿色button改动配置文件再点击改动button成功改动方块颜色

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会有例如以下的信息在里面:

相应的我们须要更新我们改动的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();
}
}

你可能感兴趣的文章
如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
查看>>
Linux基础命令---rmdir
查看>>
阿里云胡晓明:未来将探索区块链在工业互联网领域的应用
查看>>
优秀程序员共有的7种优秀编程习惯
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
maven常用命令
查看>>
开发者论坛一周精粹(第五十五期) 全站HTTPS之OSS教程 一次可以备案几个网站?...
查看>>
(干货)Linux学习资源推荐
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
C#字符串的不变性
查看>>
前端路由简介以及vue-router实现原理
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
分享15款很实用的 Sass 和 Compass 工具
查看>>
AMD优势: 与众不同 选择丰富
查看>>
玩转高性能超猛防火墙nf-HiPAC
查看>>
简单按日期查询mysql某张表中的记录数
查看>>