在unity中,不能像在winform中那么方便读取配置文件app.config,使用XML读取比较方便一点
1 新建Contact.xml文件,并编辑如下:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<hand>
<indx>
<indx_k31>INDX K3 1</indx_k31>
<indx_k21>INDX K2 1</indx_k21>
<indx_k11>INDX K1 1</indx_k11>
</indx>
<midl>
<midl_k31>MIDL K3 1</midl_k31>
<midl_k21>MIDL K2 1</midl_k21>
<midl_k11>MIDL K1 1</midl_k11>
</midl>
<pnky>
<pnky_k31>PNKY K3 1</pnky_k31>
<pnky_k21>PNKY K2 1</pnky_k21>
<pnky_k11>PNKY K1 1</pnky_k11>
</pnky>
<ring>
<ring_k31>RING K3 1</ring_k31>
<ring_k21>RING K2 1</ring_k21>
<ring_k11>RING K1 1</ring_k11>
</ring>
<thmb>
<thmb_k21>THMB K2 1</thmb_k21>
<thmb_k11>THMB K1 1</thmb_k11>
</thmb>
</hand>
2 在unity脚本中的Start方法中编辑,如下:
void Start ()
{
#region 从配置文件中读取手模型关节的名称
if(File.Exists("Contact.xml")){
//将文件加载进来
XDocument document = XDocument.Load("Contact.xml");
//获取根元素
XElement root = document.Root;
//获取indx节点下的所有元素
IEnumerable<XElement>indxs=root.Element("indx").Elements();
foreach (XElement item in indxs)
{
Debug.Log(item.Value);
}
//获取midl节点下的所有元素
IEnumerable<XElement> midls = root.Element("midl").Elements();
foreach (XElement item in midls)
{
Debug.Log(item.Value);
}
//获取pnky节点下的所有元素
IEnumerable<XElement> pnkys = root.Element("pnky").Elements();
foreach (XElement item in pnkys)
{
Debug.Log(item.Value);
}
//获取pnky节点下的所有元素
IEnumerable<XElement> rings = root.Element("ring").Elements();
foreach (XElement item in rings)
{
Debug.Log(item.Value);
}
//获取thmb节点下的所有元素
IEnumerable<XElement> thmbs = root.Element("thmb").Elements();
foreach (XElement item in thmbs)
{
Debug.Log(item.Value);
}
}
#endregion
}
打印输出如下图:
额外补充:
编程方式创建xml文件
XmlDocument xDoc=new XmlDocument();
XmlDeclaration xmlDec= xDoc.CreateXmlDeclaration("1.0","utf-8","yes");
xDoc.AppendChild(xmlDec);
//创建根节点,并加入到xDoc中
xDoc.AppendChild(xDoc.CreateElement("Persons"));
//保存,参数是文件名
xDoc.Save("Contact.xml");
往Xml文件中写入内容
XmlDocument xDoc=new XmlDocument();
xDoc.Load("Contact.xml"); //加载文档
XmlElement root=xDoc.DocumentElement; //获取根节点
XmlElement xePerson= xDoc.CreateElement("person"); //新建Persons节点
xePerson.SetAttribute("phone","值"); //添加节点属性
//为person节点添加子节点Name
XmlElement xeName=xDoc.CreateElement("Name");
xeName.InnerText="值"; //设置子节点的值
xePerson.AppendChild(xeName);
//为person节点添加子节点Sex
XmlElement xeSex=xDoc.CreteElement("Sex");
xeSex.InnerText="值"; //设置子节点的值
xePerson.AppendChild(xeSex);
root.AppendChild(xePerson); //把新节点添加到根节点下
xDoc.Save("Contact.xml");