当前位置:首页 » 《随便一记》 » 正文

Unity实现存档的不同方法

16 人参与  2022年11月09日 11:45  分类 : 《随便一记》  评论

点击全文阅读


PlayerPres类

这个类简单易懂,但只能存取int,float,string类,而且在调试过程中所产生的变化都会保留,最重要的是污染注册表。

脚本序列化

序列化是将数据结构或对象状态转换为 Unity 可存储并在以后可重构的格式的自动过程。Unity 的一些内置功能会使用序列化,比如保存和加载、Inspector 窗口、实例化和预制件等功能。

序列化规则

Unity 中的序列化程序在实时游戏环境中运行。这对性能有重大影响。因此,Unity 中的序列化与其他编程环境中的序列化具有不同的行为。以下部分概述了如何在 Unity 中使用序列化。要使用字段序列化,必须确保其:

public,或具有 SerializeField属性非 staticconstreadonly具有可序列化的 fieldtype

可序列化的简单字段类型

具有 Serializable 属性的自定义非抽象、非泛型类具有 Serializable 属性的自定义结构可序列化的简单字段类型的数组、 List<T>原始数据类型(intfloatdoubleboolstring 等)枚举类型某些 Unity 内置类型:Vector2Vector3Vector4RectQuaternionMatrix4x4、`在这里插入图片描述

存储无法序列化类的解决方法

在这里插入图片描述

总之,确保自定义类可序列化需要具有 Serializable 属性、非抽象、非静态、非泛型(但可继承自泛型类)

此外在某些情况下,脚本序列化可能会导致错误。

从构造函数或字段初始化函数以及反序列化期间调用 Unity Scripting API

在 MonoBehaviour构造函数或字段初始化函数中调用诸如 GameObject.Find 之类的脚本 API 会触发错误:“Find is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call in in Awake or Start instead.”

解决此问题的方法是在 MonoBehaviour.Start中而不是在构造函数中调用脚本 API。

Json类

之所以要了解序列化的知识,就是因为Json存储就是通过序列化来实现的

首先我们需要创建一个类来表明需要存储哪些数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7E2UuxIj-1646546826174)(C:\Users\ycy\AppData\Roaming\Typora\typora-user-images\image-20220306120115115.png)]

Json文件如何转化

使用unity中的JsonUtility类可以让可序列化对象和Json数据相互转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WCWE9kTc-1646546826175)(C:\Users\ycy\AppData\Roaming\Typora\typora-user-images\image-20220306122024170.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DJhzh7Gj-1646546826176)(C:\Users\ycy\AppData\Roaming\Typora\typora-user-images\image-20220306134131674.png)]
在这里插入图片描述

注意:

File类需要using System.IOApplication.persistentDataPath 返回一个持久数据目录的路径(不同平台的路径不同,因此也不用担心存档找不到)Path.Combine 将string类型合并成路径名File.WriteAllText(string path,string contents)

我们创建该类的实例便可以储存,如果是敌人的话,创建多个实例存储即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CtBxkzeB-1646546826177)(C:\Users\ycy\AppData\Roaming\Typora\typora-user-images\image-20220306135024042.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-REam3qgT-1646546826177)(C:\Users\ycy\AppData\Roaming\Typora\typora-user-images\image-20220306135040973.png)]

此外呢,还有.FromJsonOverwrite可以重写原有数据,用于覆盖存档


点击全文阅读


本文链接:http://zhangshiyu.com/post/47631.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 被豪门新郎打断肋骨后,豪门慌了全文免费在线阅读_[周贺顾秉天顾明珠]章节彩蛋限时释出‌
  • [斤斤计较的老婆]节选隐藏剧情入口‌_林倩朋友美其名曰无弹窗阅读
  • 你揽星辰我拥黄昏+后续+结局(尤雾眠晏沉舟)列表_你揽星辰我拥黄昏+后续+结局
  • 听说你爱我独家章节限时试读_江时闻小雨朋友限时免费***章节速览
  • 完结文爱如蜉蝣,朝生暮死列表_完结文爱如蜉蝣,朝生暮死(沈栀晏淮)
  • 爱如蜉蝣,朝生暮死沈栀晏淮结局+番外(沈栀晏淮)全书免费_(沈栀晏淮免费爱如蜉蝣,朝生暮死沈栀晏淮结局+番外读全书)列表_笔趣阁爱如蜉蝣,朝生暮死沈栀晏淮结局+番外
  • 爱意随风搁浅完结版免费阅读_陆竞野绵绵宝宝口碑神作必读篇章
  • 爱乃因果(孟夏瑜)_爱乃因果列表_笔趣阁(爱乃因果)
  • 给你的第三封信是遗言全书+后续+结局(沈佳芮顾温言)列表_给你的第三封信是遗言(沈佳芮顾温言)给你的第三封信是遗言全书+后续+结局在线
  • (番外)+(全书)苔藓爬满旧日诺言全书+后续***_(顾砚廷慕晚夏)苔藓爬满旧日诺言全书+后续列表_笔趣阁(顾砚廷慕晚夏)
  • 花落花开终别离结局+番外(祁欢江临州)全祁欢江临州文结局_祁欢江临州+结局列表_笔趣阁(花落花开终别离结局+番外)
  • 抓阄选妻角色专属支线试读入口_珊珊刘思语周承小说节选试读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1