栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity(C#)读写xml文件详解

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity(C#)读写xml文件详解

目录
  • 什么是xml文件?
  • xml文件的结构
  • 如何读写xml文件

什么是xml文件?

xml文件是一种可拓展标记语言,由于简单易用,常被应用程序用于保存数据,unity也是如此,在我们需要控制读写用户的存档时,除了unity自带的PlayerPrefs或者是json,最常用到的就是xml文件,本篇 文章详细介绍unity(c#)中如何操控xml文件

xml文件的结构

先来看看一个完整的xml文件长什么样



  
    5
    man
  
  
    10
    woman
  
  
    15
    woman
  

一、文档声明:从文档可见,第一行的""为xml文件的声明,意思是文档符合xml1.0规范,默认编码为UTF-8

二、根节点:这里的为根节点,名称可以随意定义,它是文档里唯一的节点,开始于文档开头,结束于文档最末尾

三、元素:示例中10即为xml中的元素,和分别为开始标签和结束标签,10为元素的内容(注:xml的标签区分大小写,如写成和则无法识别)

四:属性:文档示例""中,name即为元素student1的属性,一个元素可以拥有多个属性

如何读写xml文件

大致介绍完xml文件,现在来看看如何在unity中读写xml文件(后面使用的示例还是上面的文档)

  • C#要读写xml文件,首先要引用System.Xml
using System.Xml;
  • 用unity的Resources.Load加载文件
TextAsset xmlFile = Resources.Load(path); //加载path路径下的xml文件内容
XmlDocument document = new XmlDocument(); //创建xml文件的变量
document.LoadXml(xmlFile.text); //让xml文件变量读取xmlFile内的文本
  • 解析xml,先获取根节点下的所有子节点
XmlNodeList nodeList = document.SelectSingleNode("student").ChildNodes; //将student节点的子节点加入至nodeList
  • 将nodelist下的某个子节点转化成xml元素,就可以进行读写了
XmlElement elementStudent = (XmlElement)nodeList[num]; //子节点转化为元素

elementStudent.GetAttribute("name"); //获取元素的name属性,如果上一行num为0,则这里返回的是"椎名"
elementStudent.InnerText //获取元素的内容
  • 完整代码
using UnityEngine;
using System.Xml;

public class XmlTest : MonoBehaviour
{
    private void Start()
    {
        TextAsset xmlFile = Resources.Load("xml");
        XmlDocument document = new XmlDocument();
        document.LoadXml(xmlFile.text);

        XmlNodeList nodeList = document.SelectSingleNode("student").ChildNodes;
        XmlElement elementStudent = (XmlElement)nodeList[0];

        Debug.Log(elementStudent.GetAttribute("name"));
        foreach (XmlElement element in elementStudent.ChildNodes)
        {
            Debug.Log(element.InnerText);
        }
    }
}
  • 将文章开头的完整xml文档放在unity中Resources文件夹里,然后将上面的代码随便挂在一个物体上,运行游戏


可以发现成功将student1的属性"name"和student1中的age和sex这两个元素的内容打印出来了

ok,关于如何unity读写xml文件就介绍到这里,感谢大家的阅读。
如果对unity开发感兴趣,可以加入我们的交流群共同探讨!!
群号:385075578
个人QQ:792006305

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/898193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号