首页 > 移动平台 > 详细

(转)U3D不同平台载入XML文件的方法——IOS MAC Android

时间:2014-09-14 23:34:57      阅读:442      评论:0      收藏:0      [点我收藏+]

自:http://www.cnblogs.com/sifenkesi/archive/2012/03/12/2391330.html

在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件:

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load("Assets/Resources/text.xml");

IOS上载入XML的正确方法有2种:

(1)方法一

TextAsset textAsset = (TextAsset)Resources.Load(filename, typeof(TextAsset));

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(new StringReader(textAsset.text));

(2)方法二

TextAsset textAsset = (TextAsset)Resources.Load(filename, typeof(TextAsset));

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.LoadXML(textAsset.text);

上述2种方法分别使用了XmlDocument的Load()方法和LoadXML()方法,传入的参数有些差别,不过都需要通过Resources.Load()方法先将文件载入到一个TextAsset中,然后传给xmlDoc的载入方法。

(3)方法三

需要在IPad上进行持久化操作的文件,比如游戏的本地存档等数据,是不能存放在Resources目录下的,因为IPad上没法对其进行写操作。

那么对于IPad上读写XML,应该怎样进行操作呢?方法如下所述:

将需要序列化的文件存放在Application.persistentDataPath目录下,该目录是一个平台相关的路径。

写:

XmlDocument xmlDoc = new XmlDocument();

...

xmlDoc.Save(Application.persistentDataPath+"//abc.xml");

读:

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(Application.persistentDataPath+"//abc.xml");

PS1:还有另外一种实现本地持久化操作的方法,使用PlayerPrefs类,此类是U3D提供的专门用来进行玩家偏好设置的类,不过偶暂时未使用此类,是否方便尚未测试。

PS2:

对于Android平台:使用上述方法(3),即和IOS平台相同的操作即可。

对于Mac平台:使用上述方法(1)/(2)。

对于Windows平台:使用上述方法(1)/(2)。

(转)U3D不同平台载入XML文件的方法——IOS MAC Android

原文:http://www.cnblogs.com/wonderKK/p/3971913.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!