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

1、首先是看看效果图:

开始运行项目如下图所示

2、点击绿色按钮修改配置文件再点击修改按钮成功修改方块颜色


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;
}
}
}

我们要实现如效果图中的点击按钮就会修改对应的方块,我们需要创建我们的按钮:

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();
}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity3D是一个功能强大的游戏开发工具,在游戏中经常需要读取XML文件XML是可扩展标记语言的缩写,它是一种用于描述数据的编程语言,广泛应用于Web应用程序、数据库等领域。Unity3D提供了多种读取XML文件的方法。 第一种方法是使用XmlDocument类。使用这个类可以读取和解析XML文件。首先需要创建一个XmlDocument对象,并将XML文件的路径作为参数传递给该对象。然后使用SelectSingleNode或SelectNodes方法来定位XML文件中包含的节点和属性,使用InnerXml属性或InnerText属性来获取节点或属性的值。 第二种方法是使用XmlSerializer类。这个类可以将XML文件中的数据转换为对象,通过对象来访问XML文件中的数据。首先需要将XML文件中的数据映射到一个类或结构体中,然后创建一个XmlSerializer对象,并使用Deserialize方法将XML文件中的数据反序列化成对象。 第三种方法是使用LINQ to XML技术。这种方法使用C#语言中的LINQ技术来读取和处理XML文件使用这种方法可以使代码更简洁、可读性更好。使用LINQ to XML技术首先需要创建一个XDocument对象,并使用LINQ查询语言或函数的方式来查询和处理XML文件中的数据。 总结来说,Unity3D可以通过XmlDocument、XmlSerializer和LINQ to XML技术来读取XML文件。开发者可以根据实际需求选择不同的方法,来完成XML文件的读取和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值