纳金网
标题:
[脚本]Unity操作XML例子,比官方WIKI的简单
[打印本页]
作者:
.
时间:
2012-10-25 14:29
标题:
[脚本]Unity操作XML例子,比官方WIKI的简单
在百度找了3页unity使用XML的相关资料,清一色全是官方的例子,比较繁琐。。于是就使用C#调用XML的方法尝试了一下。
这是第一个例程,测试创建一个简单的XML文件。使用时先调用xmlInit()方法初始化,然后调用writeTest()写入。
刚刚测试了一下。好像Build了之后,创建不出xml文件。。目前正在试
复制代码
1.using UnityEngine;
2.using System.Collections;
3.using System.IO;
4.using System.Xml;
5.
6.public class XmlTest : MonoBehaviour
7.{
8. private string fileName = @"/config.xml";
9.
10. private string path = "";
11.
12. private XmlDocument xd = new XmlDocument();
13. private XmlElement rootEle;
14.
15. public void xmlInit()
16. {
17. path = System.IO.Directory.GetCurrentDirectory() + fileName;
18.
19. rootEle = xd.CreateElement("root");
20. XmlDeclaration xdc = xd.CreateXmlDeclaration("1.0", "GBK", null);//这里是设置XML的版本号,不是自己游戏的版本号
21.
22. xd.AppendChild(xdc);
23. }
24.
25.
26. public void writeTest()
27. {
28. XmlElement ele = xd.CreateElement("firstXml");
29.
30. ele.InnerText = "hi";
31. rootEle.AppendChild(ele);
32. xd.AppendChild(rootEle);
33. xd.Save(path);
34. }
35.}
第二个例程。一个具有读写功能的XML类。用于设置游戏玩家的属性配置文件。并把XmlElement变为结构体。调用更方便。
同样,测试使用时先调用xmlInit(),再调用writeTest()或readTest().
复制代码
1.using UnityEngine;
2.using System.Collections;
3.using System.IO;
4.using System.Xml;
5.
6.public class XmlTest : MonoBehaviour
7.{
8. private string fileName = @"/config.xml";
9.
10. private string path = "";
11.
12. private XmlDocument xd = new XmlDocument();
13. private XmlElement rootEle;
14.
15.
16. public void xmlInit()
17. {
18. path = Directory.GetCurrentDirectory() + fileName;
19.
20. rootEle = xd.CreateElement("root");
21. XmlDeclaration xdc = xd.CreateXmlDeclaration("1.0", "GBK", null);//这里是设置XML的版本号,不是自己游戏的版本号
22.
23. xd.AppendChild(xdc);
24. }
25.
26.
27. public void writeTest()
28. {
29. string[] players = new string[]{"player1", "player2", "player3"};
30. string[] hps = new string[]{"100","200","150"};
31. string[] mps = new string[]{"110","62","94"};
32. for(int i=0;i <players.Length; i++)
33. {
34. XmlElement info = xd.CreateElement("info");
35. info.SetAttribute("name",players
);
36. Sct_XmlEles xes = new Sct_XmlEles();
37.
38. xes.hp = xd.CreateElement("hp");
39. xes.hp.InnerText = hps
;
40. xes.mp = xd.CreateElement("mp");
41. xes.mp.InnerText = mps
;
42.
43. info.AppendChild(xes.hp);
44. info.AppendChild(xes.mp);
45. rootEle.AppendChild(info);
46. }
47. xd.AppendChild(rootEle);
48. xd.Save(path);
49. }
50.
51. public void readTest()
52. {
53. string tmpStr = "";
54. xd.Load(path);
55.
56. foreach (XmlNode node1 in xd.ChildNodes)
57. {
58. foreach (XmlNode node2 in node1.ChildNodes)
59. {
60. foreach (XmlNode node3 in node2.ChildNodes)
61. {
62. print (node2.Attributes[0].Name+" ----- "+node2.Attributes[0].Value);
63. switch(node3.Name)
64. {
65. case "hp":
66. print ("hp "+node3.InnerText);
67. break;
68.
69. case "mp":
70. print ("mp "+node3.InnerText);
71. break;
72. }
73. }
74. }
75. }
76. }
77.}
78.
79.public s***ct Sct_XmlEles
80.{
81. public XmlElement hp;
82. public XmlElement mp;
83.}
更多精彩内容,尽在web3D纳金网http://www.narkii.com/club/
【来源:unity圣典】
作者:
艾西格亚
时间:
2012-10-25 17:04
感谢分享!
作者:
.
时间:
2012-10-25 21:00
顶起
欢迎光临 纳金网 (http://rs.narkii.com/club/)
Powered by Discuz! X2.5