加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【转】手机”读取XML

发布时间:2020-12-16 05:20:34 所属栏目:百科 来源:网络整理
导读:Dear All: 我们都知道如果将档案或Prefab放到Resources的资料夹,就可以透过Resources这个class读取资料夹中的档案或Prefab。我们也知道在UNITY里头,可以使用.NET Framework的XmlReader来读取XML档案。我们更清楚,使用Application.dataPath可以取得Assert
Dear All:
我们都知道如果将档案或Prefab放到Resources的资料夹,就可以透过Resources这个class读取资料夹中的档案或Prefab。我们也知道在UNITY里头,可以使用.NET Framework的XmlReader来读取XML档案。我们更清楚,使用Application.dataPath可以取得Assert资料夹的位置。所以...



问题:当你把XML档案放置于Resources资料夹中,你要怎么读取这个档案?
以我这个蠢才来说,我会使用XmlReader这个Class,然后档案读取路径为:Application.dataPath + "Resources/expTable.xml"。接着用MS给的范例读取我要的资料,如下所示:

while ( reader.Read() ) {
switch ( reader.NodeType ) {
case XmlNodeType.Element:
break ;
}
}

OK!GOOD,一切就绪!!启动Editor,资料正常!打完收工...
...
....
.....
......(慢着~~怎么放上Android手机后不正常??)
对!你中招了...
因为Application.dataPath在手机上所表示的路径根本不是Asset资料夹所在的位置,而是(以Android为例):
/mnt/asec/com.xxx.projectx/pkg.apk
这是"三小"?? (错愕)...#@$@$...
所以你在PC可以Loading的档案,现在变成找不到!!
所以解法是:
//一样利用Resources class读取xml,只是先暂时转换成TextAsset
TextAsset t = Resources.Load("expTable") as TextAsset ;
//接着再转换成XmlReader
XmlReader reader = XmlReader.Create( new StringReader( t.text ) );
OK!这才叫“打完收工”
Reference: http://www.unityin.com/2012/02/xml.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读