欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity安卓读写配置文件

程序员文章站 2022-07-12 13:03:08
...

目录

一、参考:https://blog.csdn.net/ou_nvhai/article/details/78838481

1、思路:StreamingAssets里有一个xml文件,persistentDataPath第一次时候需要读取StreamingAssets里的xml文件,程序都是对persistentDataPath的xml文件进行读写操作

1、代码:

1、解析:

1、xml文件

1、运行效果

①、电脑:如果是编辑器运行的话,电脑上面会有这个xml产生

①、手机:

1、注意 

①、第一次运行时候系统就自动检测在系统文件夹下面是否有这个文件,所以以后修改的都是这个目录下的文件了​

②这中写法的xml格式我没有研究出怎么读取数据 ,还是使用一个节点里面一个内容的格式,参考其余文档上面都有介绍

③、使用 int.TryParse(student.Attributes["x"].Value,out x);得到属性里面x的值


 


 


一、参考:https://blog.csdn.net/ou_nvhai/article/details/78838481

1、思路:StreamingAssets里有一个xml文件,persistentDataPath第一次时候需要读取StreamingAssets里的xml文件,程序都是对persistentDataPath的xml文件进行读写操作

 

研究了很久,终于找到了安卓读取配置文件的方法,下面是一步步步骤

1、代码:

Unity安卓读写配置文件

/// <summary>
/// 安卓读写xml:准备使用persistentDataPath读取到最初的xml文件,然后之后都是修改persistentDataPath文件
/// 结果:
/// 功能:
/// </summary>               

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Xml;
using UnityEngine.UI;

public class MyTestXml05 : MonoBehaviour
{
    private string xmlPath;
    public static string id;
    public static string score;

    public Text text_xml;

    void Awake()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            //localPath = Application.streamingAssetsPath + "/score.xml"; //在Android中实例化WWW不能在路径前面加"file://"
            //xmlPath = "jar:file://" + Application.dataPath + "!/assets" + "/score.xml";
            xmlPath = "jar:file://" + Application.streamingAssetsPath + "/assets" + "/score.xml";
            Debug.Log(xmlPath);
        }
        else
        {
            xmlPath = "file://" + UnityEngine.Application.streamingAssetsPath + "/score.xml";//在Windows中实例化WWW必须要在路径前面加"file://"

            Debug.Log(xmlPath);
        }

        StartCoroutine(CopyFiles(xmlPath));

    }

    // Use this for initialization
    void Start()
    {
       // xmlPath = Application.persistentDataPath + "/test.xml";


    }

    // Update is called once per frame
    void Update()
    {

    }


    /// <summary>
    /// 安卓写xml:
    /// 网页:https://blog.csdn.net/a123qaz021/article/details/83715159
    /// </summary>
    IEnumerator CopyFiles(string path)
    {
        WWW www = new WWW(path);
        yield return www;
        if (www.isDone)
        {
            string newPath = Application.persistentDataPath + "/" + "score.xml";
            if (!File.Exists(newPath))
            {
                File.WriteAllBytes(newPath, www.bytes);//如果persistentDataPath没有找到xml文件,就会在persistentDataPath目录下面新建一个xml文件
            }
        }
        ReadXml();

    }

    /// <summary>
    /// 安卓读xml:
    /// 网页:https://blog.csdn.net/a123qaz021/article/details/83715159
    /// </summary>
    public void ReadXml()
    {
        string path = Application.persistentDataPath + "/" + "score.xml";
        string strs = File.ReadAllText(path);
        Debug.Log(path);             

        XmlDocument xmlDoc = new XmlDocument();  

        xmlDoc.Load(path);
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("rank").ChildNodes;

        foreach (XmlElement xe in nodeList)
        {
            id = xe.GetAttribute("id");
            score = xe.GetAttribute("score");


            //allScore.Add(int.Parse(score));  //将所有得分读入List

            //Debug.Log("ID:" + id + " Score:" + score);
            //MyDebug.Add(id, id);

            xe.SetAttribute("id", "123123");
            MyDebug.Add("id被修改了",0);
        }
        path = Application.persistentDataPath + "/" + "score.xml";
        strs = File.ReadAllText(path);
        text_xml.text = strs;
        xmlDoc.Save(path);          
    }


}

1、解析:

当我找到了persistentDataPath里的xml文件后,通过解析它,就可以设置它里面的属性,xe.SetAttribute("id", "123123");

1、xml文件

Unity安卓读写配置文件

<?xml version="1.0" encoding="UTF-8"?>
<rank>
  <rank id="123123" score="12" />
  <rank id="123123" score="22" />
  <rank id="123123" score="22" />
</rank>

1、运行效果

①、电脑:如果是编辑器运行的话,电脑上面会有这个xml产生

Unity安卓读写配置文件

①、手机:

Unity安卓读写配置文件

1、注意 

①、第一次运行时候系统就自动检测在系统文件夹下面是否有这个文件,所以以后修改的都是这个目录下的文件了Unity安卓读写配置文件

Unity安卓读写配置文件

②这中写法的xml格式我没有研究出怎么读取数据 ,还是使用一个节点里面一个内容的格式,参考其余文档上面都有介绍

Unity安卓读写配置文件

③、使用 int.TryParse(student.Attributes["x"].Value,out x);得到属性里面x的值

Unity安卓读写配置文件Unity安卓读写配置文件

 

上一篇: Spring入门

下一篇: Spring基础