xml在unity中可以用来保存各种配置(Scene)和数据(装备数据)资源,同样的还有jason和binary,所以这三种文件对我们以后写代码是相当重要的。
下面写了一个小小的工程作为入门来认识下XmlDocument、XmlElement、SetAttribute、InnerText分别是什么
1.新建一个项目工程,名字随便写,进入unity后在资源面板里新建两个文件夹
Editor – 存放工具类,这个文件夹里的东西在生成可执行文件时不会打包进去
StreamingAssets – 存放资源文件,便于进行资源更新
2.在Editor中新建ExportScene.cs, 代码如下:
注释已写好
/*****************************
*
* Author : TheNO.5
*
******************************/
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Xml;
public class CreateXML : MonoBehaviour
{
// 新建菜单项
[MenuItem("Editor/CreateXML")]
static void ExportSceneToXML()
{
//获取XML保存路径,引号中的可以自己指定,前提是指定文件夹必须存在
string filePath = Application.dataPath + @"/StreamingAssets/TestXML.xml";
// 如果此文件已存,则删掉
if(File.Exists(filePath))
File.Delete(filePath);
// 新建一个XML
XmlDocument xmlDoc = new XmlDocument();
// 为这个XML创建两个元素节点
XmlElement config = xmlDoc.CreateElement("Config");
XmlElement scene = xmlDoc.CreateElement("Scene");
// 设置scene元素的属性
scene.SetAttribute("name", filePath);
// 创建另一个新元素节点
XmlElement position = xmlDoc.CreateElement("position");
// 同上
XmlElement x = xmlDoc.CreateElement("x");
// 设置元素内容
x.InnerText = "InnerText";
// 指定各节点层级关系
position.AppendChild(x);
scene.AppendChild(position);
config.AppendChild(scene);
xmlDoc.AppendChild(config);
// 保存
xmlDoc.Save(filePath);
// 刷新,作用相当于在unity中的资源面板中右击-刷新(Refresh)
AssetDatabase.Refresh();
}
}
3.回到unity
添加的菜单在这里,点击,会在资源中生成TestXML.xml
4.然后就可以打开查看生成的xml代码,我用vscode打开的,贴上。
对照第二步代码看