
Unity数据持久化
Json Xml PlayerPrefs 2进制
心前阳光
天助自助者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity序列化多态数组
将testarray类序列化时,多态列表personlist只转换了基类数据,子类数据没有转换。缺点:不同类型的多态数组都需要实现转换逻辑,效率低,频繁使用JsonUtility方法GC多。反序列化之后,遍历类型和数据字符串,利用反射和json反序列化,将数据还原到到多态数组中。解释:序列化时,将多态数组中的数据存放到对应类型的数组中,减少Json方法的调用。相同类型的元素存储到相同类型的数组中,避免多态。反序列化时,将对应数组中的数据存放到多态数组中。优点:功能强大,支持多态数组,使用简单。原创 2025-02-15 16:14:25 · 580 阅读 · 0 评论 -
C# 异或加密
原理加密:使用密钥(2进制)对2进制数据异或运算解密:使用密钥对加密的二进制数据进行异或运算例如:加密对数字1(0001)加密 密钥是2(0010)异或运算 同0非10001 0010 异或 得到加密数据 0011解密:0011 0010 异或 得到解密数据 0001实例Student student = new Student();byte key = 66;//密钥using (MemoryStream ms = new MemoryStream()){ B原创 2021-11-13 17:41:58 · 3238 阅读 · 0 评论 -
C# 类反序列化
文件流直接反序列化二进制格式化器将文件流反序列化为object 使用as转换为对应类对象 using (FileStream stream = File.Open(Application.dataPath + "/class.test",FileMode.Open, FileAccess.Read)) { BinaryFormatter binary = new BinaryFormatter(); Student student = binary.Deserialize(st.原创 2021-11-13 17:12:00 · 554 阅读 · 0 评论 -
序列化类对象
序列化准备:序列化的对象添加[System.Serializable]特性注意:如果对象中有其他类的对象或者结构体 也需要给它们加特性方式1using System.IO;using System.Runtime.Serialization.Formatters.Binary;MemoryStream内存流、BinaryFormatter二进制格式器类BinaryFormatte类的Serialize方法可以将类对象序列化通过内存流可以获取类对象的字节数组实例using (Memor原创 2021-11-10 22:28:17 · 227 阅读 · 0 评论 -
文件夹Directory
命名空间:using System.IO文件夹操作判断路径下文件夹是否存在Directory.Exists(fileFolderPath) 返回值 bool创建文件夹Directory.CreateDirectory(fileFolderPath);删除文件夹Directory.Delete(fileFolderPath);获取文件夹中的所有文件夹(子级)Directory.GetDirectories(Application.dataPath);获取指定文件夹内所有文件的路径Dir原创 2021-11-10 18:22:15 · 460 阅读 · 0 评论 -
文件流FileStream
引入命名空间 System.IO获取文件流File.Create(路径) 返回值 FileStreamFile.Open(路径,打开方式) 返回值 FileStreamnew FileStream(路径,打开方式,访问方式) 返回值 FileStream文件流属性 方法Length 长度CanRead 文件流是否可读CanWrite 文件流是否克写Flush() 清除此流的缓冲区,使得所有缓冲数据都写入到文件中Close()关闭当前流并释放与之关联的所有资源Dispose()释放原创 2021-11-10 16:27:31 · 2541 阅读 · 0 评论 -
文件操作1
文件操作API文件操作判断文件是否存在File.Exists(文件路径) 返回值bool创建文件 若存在该文件 会覆盖原有文件File.Create(文件路径);写入File.WriteAllBytes(文件路径,字节数组);File.WriteAllLines(文件路径, 字符串数组);//按行写入 行数和字符串数组一致File.WriteAllText(文件路径,字符串);读取File.ReadAllBytes(文件路径);//读取字节数组File.ReadAllLines(文原创 2021-11-07 21:12:48 · 210 阅读 · 0 评论 -
类型转换为字节数组
常用变量类型 转换为 字节数组命名空间:using system;API: byte[] bytes = BitConverter.GetBytes(变量);实例: byte[] bytes = BitConverter.GetBytes(255);字节数组 转换为 对应变量类型API:BitConverter.ToInt32(字节数组)实例:BitConverter.ToInt32(bytes,0)字符串 转换为 字节数组不同的语言有不同的编码格式游戏常用编码格式:UTF-8中文常用.原创 2021-11-07 17:22:24 · 2510 阅读 · 0 评论 -
XML存储和写入
路径选择存储文件夹选择Resources 只读 不可写入Application.streamingAssetsPath 可读 pc端可写 在ios、安卓不可写Application.dataPath 打包后找不到Application.persistentDataPath 可读可写 适合多个平台Application.persistentDataPath+"/文件名.XML"存储创建文本对象XmlDocument xml=new XmlDocument();添加xml版本信息Xm原创 2021-08-18 09:46:51 · 646 阅读 · 0 评论 -
读取XML
只读取不修改Resources或者StreamingAssets文件夹读取和修改Application.persistenDataPath路径下原创 2021-08-17 09:14:53 · 110 阅读 · 0 评论 -
XML属性
语法<节点名 属性1=”内容“ 属性2=’内容‘… > 元素</节点名>属性赋值的内容 使用单引号或双引号包裹使用属性记录信息,不使用元素记录<节点名 属性1=”内容“ 属性2=’内容‘… />属性和元素的区别写法上有区别 属性和元素都可记录数据语法检查节点名配对属性值有引号命名网站检查...原创 2021-08-16 09:45:01 · 91 阅读 · 0 评论 -
XML语法
编辑器 Sublime TextXML 是树形结构右键创建文本,修改后缀为xml语法注释<!--注释内容--> <!--我的注释-->原创 2021-08-16 09:20:03 · 92 阅读 · 0 评论 -
LitJson
处理Json序列化和反序列化的第三方库下载网址:LItJson序列化JSonMapper.ToJson(对象);支持 字典 字典的键会自动转为字符串私有变量无法存储原创 2021-08-07 09:40:41 · 701 阅读 · 0 评论 -
JsonUtility
File.ReadAllTextz(路径 )读取内容 返回字符串File.WriteAllText(路径,写入文件的内容(string));存储字符串路径Applicaton.persistentDataPath+“//文件名加后缀”JsonUtlity序列化JsonUtility.ToJson(对象);//对象序列化为字符串 返回值为字符串注意JsonUtility不能序列化字典类中有类时,内部类上方需要加上System.Serializable特性 才可序列化私有变量上方加上[S.原创 2021-08-06 09:29:23 · 789 阅读 · 0 评论 -
Excel转Json
网站:https://www.bejson.com/原创 2021-08-04 10:16:02 · 140 阅读 · 0 评论 -
Json数据持久化
Json简述游戏数据存储到硬盘;硬盘中的数据读取到游戏中。文件后缀软件根据后缀名判断文件类型,并根据特定的读写规则去解析它。可自定义。Json后缀为.jsonJson全称:JavaScript Object Notation轻量级数据交换格式在网络通讯中用于传输数据或本地数据存储和读取编辑Json的软件记事本、写字板、通用文本编辑器Sublime Text、网页Json编辑器等创建方法右键创建文本,后缀改为Json注释//或者/**/语法Json 格式 键值对结构{原创 2021-08-03 10:22:45 · 397 阅读 · 0 评论