• 【重要】U3D存放本地游戏存档——不同平台载入XML文件的方法——IOS MAC Android


    在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)。

  • 相关阅读:
    WCF JSON DATETIME JSON.NET (Newtonsoft.Json.dll)
    fastboot 重启到recovery
    EXCEL datatable 根据列名自动写入到相应属性、字段或列中
    支付宝通讯时异常 基础连接已经关闭
    c#.net 调用BouncyCastle生成PEM格式的私钥和公钥
    WCF 遇到 由于线程退出或应用程序请求,已放弃 I/O 操作 ListenerContextInputStream
    runliuv, 安卓查看WIFI密码
    安卓 NEXUS6 修改分辨率,density
    ubuntu 安装 VISUAL STUDIO CODE
    C# .NET MVC 接收 JSON ,POST,WCF 无缝隙切换
  • 原文地址:https://www.cnblogs.com/softimagewht/p/3864727.html
Copyright © 2020-2023  润新知