unity PC和android不同平台读取xml文件比较

本文都是加载本地xml文件

一:pc平台下

1:不管是persistentDataPath路径还是streamingAssetsPath都可以直接使用load获取读写到

        eg:  XmlDocument doc = new XmlDocument(); doc.Load(path);

2:有一点要注意的是,如果你自己在assets文件夹下面自己新建了一个文件夹存放xml文件,那么在打包的时候这个文件夹下的xml在打包之后是读取不到的 

解决办法:1:是直接把xml文件放在StreamAssets文件夹下面

                    2:在打包之后,把存放的xml文件夹放到你的****_Data文件夹下(确保路径统一,如果你的xml文件夹不是直接位于          Assets文件夹下面,例如:Aeeets/Xml/name.xml,那么你在打包之后在****_Data文件夹下面新建个文件夹Xml,最后里面放入name.xml即可)             

3:用www类去加载,

     用www去加载xml文件,都需要添加“file://

     eg.:  

  IEnumerator IEPCRead(string path)
      {
          WWW www = new WWW("file://" + path);
          //do.......   
      }

 

二:Android平台下

1:不能直接load streamingAssetsPath 路径下面的xml,可以load  persistentDataPata路径下的xml

     eg.:

  string path1 = Application.streamingAssetsPath + "/stream.xml";
  XmlDocument doc = new XmlDocument();
  doc.Load(path1);   //错误
   string path1 = Application.persistentDataPath + "/stream.xml";
  XmlDocument doc = new XmlDocument();
  doc.Load(path1);// 正确

2:不能读取自己创建的文件夹下面xml

         这个和pc平台下面的第2条是一样的,但是对打包后apk我们无法操作,所以在android平台下面还是不要自己创建文件夹存放xml文件。

3:用www去加载

         用www去加载xml文件,添加“jar:file://协议

  IEnumerator IEAndroidRead(string path)
         {
            WWW www = new WWW("jar:file://" + path);
           //do.......
         }

 

【修改】

   ps:这里我在试的时候发现streamingAssetsPath不加“jar:file://协议(加了会出错)

 

  date:2017.11.1

  加个例子

三:总结

     pc:可以直接load相应路径下的xml文件,但是要注意自己创建文件夹在打包后读取会出错

          用www去加载的时候要加"file://"协议

     android:只能loadpersistentDataPata路径下的xml文件,其他均不可,

                         用www加载的时候需要添加“jar:file://”协议,但是streamingAssetsPath不能加“jar:file://”协议

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值