在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的更多相关文章

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

    自:http://www.cnblogs.com/sifenkesi/archive/2012/03/12/2391330.html 在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不 ...

  2. idea的maven项目不知道为啥下载不下来jar包,看本地仓库只是下载了一下xml文件,没有jar包问题

    确认了私服上的jar包能直接下载下来,而且jar包是正常的:但是就是不能通过idea下载,通过idea下载到本地仓库的只生成了.lastUpdated文件,检查了setting.xml文件.网络,私服 ...

  3. C#三个平台上的文件选择方法

    wpf: Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); dlg.DefaultExt = &qu ...

  4. 判断本地系统目录下是否存在XML文件,如果不存在就创建一个XMl文件,若存在就在里面执行添加数据

    这是我为项目中写的一个测试的例子, 假如,您需要这样一个xml文件, <?xml version="1.0" encoding="utf-8"?> ...

  5. Unity C# File类 本地数据保存和游戏存档

    进行本地数据存档和载入在游戏开发中非常常见,几乎任何一款游戏都需要这样的功能. 命名空间: using System.IO; 主要用于引入File类以处理各类文件操作. using System.Ru ...

  6. c# unity PlayerPrefs 游戏存档,直白点就是讲游戏数据本地保存下来

    在游戏会话中储存和访问游戏存档.这个是持久化数据储存,比如保存游戏记录. 我的理解是通过某个特殊的标签来保存在本地,而且该标签为key的意思,初始值不用赋值. 在游戏开发中较为实用. 暂时用到了 Se ...

  7. 【Unity3D】Unity3D之 注册表动态存取游戏存档——PlayerPrefs类

    [Unity3D]Unity3D之 注册表动态存取游戏存档--PlayerPrefs类 1.Unity3D提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的 ...

  8. PHP+socket游戏数据统计平台发包接包类库

    <?php /** * @title: PHP+socket游戏数据统计平台发包接包类库 * @version: 1.0 * @author: perry <perry@1kyou.com ...

  9. mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程

    这篇教程是介绍如何使用cocos2d-x和box2d来制作一个demo,且此demo能同时运行于ios和android平台.在继续阅读之前,建议您先阅读上一篇教程. 首先,按照上一篇教程,搭建好mac ...

随机推荐

  1. Intel edison 智能硬件开发指南 基于YoctoProject

    首先简单的介绍一下edison的板子: edison 芯片 22nm工艺,quark双核SoC,采用atom架构,针对小型智能设备  X86架构 相当于一台“奔腾级电脑” 低功耗,小体积,自带wifi ...

  2. idea破解,idea激活,使用破解补丁无需注册码

    dea激活,JetBrain旗下软件激活 前言 idea激活有多种方式,网上较多的是使用注册码或者填License server网址,目前(2017年8月19日)使用注册码的方式,亲测可用的只有lan ...

  3. 如何安装Node.js环境

    一.在Windows系统下安装Node.js环境 1. 下载地址:官网http://nodejs.org/ 2.   安装nodejs,根据自己情况,安装路径 D:\Program Files\nod ...

  4. ubuntu 安装bazel

    https://docs.bazel.build/versions/master/install-ubuntu.html#install-with-installer-ubuntu

  5. ubuntu安装mxnet GPU版本

    安装mxnet GPUsudo pip install mxnet-cu80==1.1.0 推荐pip安装mxnet,土豪gpu版本: pip install mxnet-cu90==1.0.0 豪华 ...

  6. 【WPF】鼠标拖拽功能DragOver和Drop

    在Winform里面实现拖入功能只要设置控件AllowDrop=true; 然后实现方法 //拖入 private void txtInputPath_DragOver(object sender, ...

  7. Maven POM

    POM代表项目对象模型.它是 Maven 中工作的基本单位,这是一个 XML 文件.它始终保存在该项目基本目录中的 pom.xml 文件.POM 包含的项目是使用 Maven 来构建的,它用来包含各种 ...

  8. CI框架 -- 核心文件 之 Model.php

    class CI_Model { /** * Class constructor * * @return void */ public function __construct() { log_mes ...

  9. Eclipse SVN过滤文件夹及文件的方法

    有两个步骤: 1.在TortoiseSVN中将文件.文件夹加入ignore list: 2.在Eclipse中Ignored Resources利用模式匹配忽略指定文件夹.文件类型. 这样,那些无需同 ...

  10. 【苏勇老师Linux 入门笔记】网络基础

    IP 地址 IP 编制时一个双层编制方案,一个 IP 地址标示一个主机 (或一个网卡接口). 一个 IP 地址分为两个部分:网络部分(所属区域)和主机部分(标示区域中的哪个主机).IPv4 共32位, ...