Unity3D学习之数据持久化——XML

这篇具有很好参考价值的文章主要介绍了Unity3D学习之数据持久化——XML。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1. 前言

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
最终达到的效果

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2. XML 基本语法

2.1 固定语法(重要)

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2.2 注释

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2.3 基本语法

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
树形结构
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2.4 基本规则

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2.5 xml 属性

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
属性通过空格隔开 属性名 = 引导包裹的内容
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
这两个代表的东西是一样的
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2.6 验证语法错误

可以在菜鸟上使用xml验证器
xml验证器
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

2.7 C#对象和XML的手动转换

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

3. C#读取存储XML

3.1 创建xml

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
在Resources文件夹创建一个xml文件
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

把文件再复制到streamingAsserts

3.2 C# 读取xml文件

3.2.1 通过Resources文件进行读取

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

3.2.2 通过xml文件进行加载

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
获取根节点
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
遍历同名
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

3.3 C# 存储xml文件

3.3.1 存储在哪个文件夹

存储在 PersistentDataPath 可读可写

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

3.3.2 存储xml文件

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

3.4 C# 修改xml文件

先移除 再添加
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
两个方法得到子结点的子结点
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

4 XML 序列化

4.1 什么是序列化和反序列化

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

大概就是 把对象转化成可传输的字节顺序

4.2 xml 序列化

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
这种序列化不能存储 private protect ,只能存public

也可以存数组 和list
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
不支持字典的序列化

4.3 自定义结点

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

5 xml 反序列化

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

5.1 判断文件是否存在

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

5.2 反序列化

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
这里会有问题,如果对象初始化了值,再反序列时,不会覆盖初始化值了的属性。所以会出现重复读取
所以最好不要对类进行初始化,

6 IXmlSerializeable 接口(自定义xmlSerializeable类)

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.1 继承 IXmlSerializable

在需要序列化的类继承IXmlSerializable
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
需要实现三个函数
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
第一个函数直接返回null就行
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

在函数中可以自定义序列化 的规则

6.2 WriteXml函数

6.2.1 存属性

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.2.2 存结点

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.2.3 写包裹结点

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.3 ReadXml函数

6.3.1 读属性

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.3.2 读结点

方式1:
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
读到test1

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
读到test2
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
方式2:
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.3.3 读包裹节点

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.4 让dictionary支持序列化反序列化

自定义一个dictionary,让其继承dictionary和 IXMLserializable

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.4.1 序列化

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

6.4.2 反序列化

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

7 xml数据管理类

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记
测试类
Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

7.1 存储

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记

7.2 读取

Unity3D学习之数据持久化——XML,学习,xml,unity,笔记文章来源地址https://www.toymoban.com/news/detail-819278.html

到了这里,关于Unity3D学习之数据持久化——XML的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D学习之UI系统——GUI

    设置Screen Type和Center Type 最终实现效果: 3.1.1 GUI 共同点 3.1.2 文本控件 可以传图片 在unity中拖入图片 可以把Rect 设置成public 的变量,在控件中设置 文字和图片均显示 toolTip 获取当前选中的空间的附带信息 GUI Style 控制样式 3.1.3 按钮控件 必须要按下并抬起才算被点击 长按按钮

    2024年01月22日
    浏览(51)
  • 【Unity学习日记03】数据持久化

    这一篇只能说写了一部分,并没有把Unity里数据持久化的操作讲完整,之后可能是学到一点就记一点的模式。 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。 人话版:将游戏数据存储到硬盘,硬盘中数据读取到游戏中,

    2024年02月12日
    浏览(42)
  • Unity之数据持久化——Json

    JavaScript对象简谱(JavaScript Object Notation) json是国际通用的一种轻量级的数据交换格式,主要在网络通讯中用于传输数据,或本地数据存储和读取,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率 游戏中可以把游戏数据按照Json的格式标准存储在

    2023年04月20日
    浏览(30)
  • Unity数据持久化之PlayerPrefs

    什么是数据持久化 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。即将游戏数据存储到硬盘,硬盘中数据读取到游戏中,也就是传统意义上的存盘。 PlayerPrefs是什么 是 Unity 提供的可以用于存储读取玩家数据的公共类

    2024年02月19日
    浏览(34)
  • Unity学习笔记--数据持久化Json

    json是国际通用语言,可以跨平台(游戏,软件,网页,不同OS)使用, json语法较为简单,使用更广泛。json使用键值对来存储。 认识json文件 //注意字典类型存储时,键是以string类型存储的 需要添加 “” Excel转换为JSON文件: 使用网站来转换:bejson 挖坑-----》开发一个工具,

    2024年02月05日
    浏览(39)
  • Unity PlayerPrefs 持久化数据存在哪

    在游戏开发的过程中,我们经常需要存档相关的东西,称为数据的持久化。PlayerPrefs 就是Unity提供的用于本地数据持久化保存与读取的类。 PlayerPrefs会以键值对的方式存储在本地的注册表中。 1.存储数据 2.获取数据 3.删除数据 这些数据会存储在注册表中,打开注册表就能查看

    2024年02月16日
    浏览(34)
  • 【unity之数据持久化】-Unity公共类PlayerPrefs

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity数据存储 API大全图解 windows平台存储路径 HKCUSoftware[公司名称][产品名称] 项下的注册表中 公司和产品名称是 在“Project Settings”中设

    2024年02月04日
    浏览(38)
  • 【Unity】数据持久化路径Application.persistentDataPath

    今天突然想到这个路径Application.persistentDataPath,热更的重要路径,该文件夹可读可写,在移动端唯一一个可读写操作的文件夹。 移动端可以将本地的资源(资源MD5值配置表)等一些文件放到StreamingAssets文件夹下,通过Copy到persistentDataPath下与服务器的版本文件配置表作比对,

    2023年04月10日
    浏览(32)
  • Unity学习笔记--数据持久化XML文件(1)

    Xml是可拓展标记语言,一种文件格式。我们使用xml来完成对数据持久化的存储。等待我们有一程序运行结束之后,将内存中的数据进行保存,(保存在硬盘/服务器)实现对数据的持久化存储。 xml文件的读取和保存以及修改 要点: XMl文件的加载 XML文件节点的查找访问 XML文件

    2024年02月05日
    浏览(35)
  • Unity笔记:数据持久化的几种方式

    主要方法: ScriptableObject PlayerPrefs JSON XML 数据库(如Sqlite) PlayerPrefs 存储的数据是 全局共享 的,它们存储在用户设备的本地存储中,并且可以被应用程序的所有部分访问。这意味着,无论在哪个场景、哪个脚本中,只要是同一个应用程序中的代码,都可以读取和修改 Playe

    2024年02月19日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包