1. PlayerPrefs。

采用键值对的方式对数据进行存储。

PlayerPrefs.SetInt("Index",1);
// 可以存储Int, Float, String类型的数据。
PlayerPrefs.SetFloat("Height",183.5f);
PlayerPrefs.SetString("Name","Tom");
// 查看数据是否存在
if (PlayerPrefs.HasKey("Index"))// 获取数据:PlayerPrefs.GetInt("Index");
2. 二进制保存
  1. 首先创建可实例化的Save
[System.Serializable]
public class Save
{public string stringData;public float floatData;public int intData;// 三维坐标float[] pos = new float[3];// 设置坐标public void PosSet(Vector3 vector3){pos[0] = vector3.x;pos[1] = vector3.y;pos[2] = vector3.z;}// 读取坐标public Vector3 PosGet(){return new Vector3(pos[0], pos[1], pos[2]);}
}

因为三维向量坐标不能直接保存,所以需要间接保存

引入
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
2. 保存

public void Save()
{// 二进制保存Save save = new Save();save.stringData = stringObj.GetComponent<DataText>().inputField.text;save.floatData = float.Parse(floatObj.GetComponent<DataText>().inputField.text);save.intData = int.Parse(intObj.GetComponent<DataText>().inputField.text);save.PosSet(dragObj.transform.position);// 创建一个二进制格式化程序BinaryFormatter bf = new BinaryFormatter();// 创建一个文件流// 位置:C:\Users\用户名\AppData\LocalLow\公司名\项目名FileStream file = File.Create(Application.persistentDataPath + "/gamesave.save");bf.Serialize(file, save);file.Close();Debug.Log("已存档");
}
  1. 读取
public void Load()
{// 如果文件存在if (File.Exists(Application.persistentDataPath + "/gamesave.save")){// 创建一个二进制格式化程序BinaryFormatter bf = new BinaryFormatter();// 创建一个文件流FileStream file = File.Open(Application.persistentDataPath + "/gamesave.save", FileMode.Open);Save save = (Save)bf.Deserialize(file);file.Close();stringObj.GetComponent<DataText>().inputField.text = save.stringData;floatObj.GetComponent<DataText>().inputField.text = save.floatData.ToString();intObj.GetComponent<DataText>().inputField.text = save.intData.ToString();dragObj.transform.position = save.PosGet();Debug.Log("已读档");}
}
3. XML保存
  1. 实体类
using System.Collections.Generic;
using System.Xml.Serialization;[System.Serializable]
public class XmlSerlize
{// 属性[XmlAttribute("Id")]public int Id { get; set; }[XmlAttribute("Name")]public string Name { get; set; }// 元素内容[XmlElement("List")]public List<int> Infors { get; set; }
}
  1. 保存
void SerilizeSave()
{// 初始化XmlSerlize xmlSerlize = new XmlSerlize();xmlSerlize.Id = 1;xmlSerlize.Name = "liluo";xmlSerlize.Infors = new List<int>() { 1, 2, 3, 4 };XmlSerializer xml = new XmlSerializer(xmlSerlize.GetType());// 创建一个文件流FileStream file = new FileStream(Application.persistentDataPath + "/save.xml", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);StreamWriter sw = new StreamWriter(file, System.Text.Encoding.UTF8);xml.Serialize(sw, xmlSerlize);sw.Close();file.Close();
}
  1. 读取
void SerilizeLoad()
{FileStream file = new FileStream(Application.persistentDataPath + "/save.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);XmlSerializer xml = new XmlSerializer(typeof(XmlSerilize));XmlSerilize xmlSerlize = (XmlSerilize)xml.Deserialize(file);file.Close();Debug.Log(xmlSerlize.Id);Debug.Log(xmlSerlize.Name);foreach (var xmls in xmlSerlize.Infors)Debug.Log(xmls);
}

Unity-存档与读档相关推荐

  1. Unity游戏存档与读档

    目前unity常见存档和读档有几种方式,也就是常见的存储数据的方式(注意存档和读档都是针对单机游戏而言的,角色信息,道具信息,关卡情况等) Unity存档的方式大概分为这两大类 图片来源自siki学院 ...

  2. Unity中采用JSON进行存档和读档

    在利用JSON做存档和读档之前,首先要在Assets导入一个脚本!这个脚本就是LitJson.dll 然后在Unity中首先创建一个Save脚本,用于保存游戏中相关的信息,在这里我存储的是游戏中怪物的 ...

  3. C++ 关于存档与读档

    c++可以用来制作游戏.可是,如果制作的游戏不能存档,那就特别让人心疼了.这种的游戏通常都是辛辛苦苦玩了半天,好不容易打出的记录,程序重启后,一夜回到解放前. 看着宝贵的血汗数据就这样变为0,小凤我决 ...

  4. SaveLoad--Unity存档读档的学习总结

    存档与读档功能 举例: 传统RPG游戏(仙剑.空之轨迹): 1.角色信息(生命值,等级) 2.道具信息(装备,药品) 3.场景信息(场景名称.角色坐标) 4.事件信息(任务相关) 关卡类游戏:关卡的通 ...

  5. Unity_二进制,Jason,XML存档读档

    创建一个类Save 用来保存游戏的信息,以便于存档 Save.cs的代码 using System.Collections; using System.Collections.Generic; usi ...

  6. 正版七日杀服务器存档,七日杀网吧怎么存档 七日杀网吧存档读档方法介绍-游侠网...

    七日杀的电脑要求配置虽然不是特别高,但是相对于很多玩家的电脑来说还是一个不小的负担的,所以很多玩家会选择去网吧游玩,但是很多玩家发现网吧非主机玩家的人物数据重进总是清零.所以今天小编就为大家带来了便是 ...

  7. 游戏服务器之存档读档

    设计上: (1)存档方式 定时器在一定范围的分钟内随机存档一次,为了避免集中式存档 第一次需要全部存档一次,因为需要存档版本字段 分标签实时存档设置了标签的数据,减少每次存档数据 (2)压缩处理 档案 ...

  8. [虚幻引擎][UE][UE5]简单的游戏读档存档

    [虚幻引擎][UE][UE5]简单的游戏读档存档

  9. Python 名片管理系统(文件版,可存档读档)

    Python 名片管理系统(文件版,可存档读档) 相比于函数版的程序,文件版增加了存档读档操作 函数版的可以参考Python名片管理系统(列表.字典和函数的综合应用) 以下是新增部分的代码(不包括调用 ...

  10. [Unity存档系统]简单介绍Unity常见存档系统二JSON以及使用方法

    学习目标: 如果你和我同样苦恼于游戏相关的数据怎么存储与读取,那么不妨看看这个up主有关Unity存档系统的教程.[Unity] 存档系统 Part 1 | PlayerPrefs | Unity初学 ...

最新文章

  1. error BK1506
  2. C - Insertion Sort Gym - 101955C
  3. 金陵科技学院计算机开设课程,金陵科技学院各专业介绍
  4. XState Viz 可视化和调试状态机
  5. K8S - 为 Docker 而生
  6. Android 性能测试之方向与框架篇
  7. 分库分表 or 中间件 ?
  8. 网工学Python——初识函数
  9. Introduction to Computer Networking学习笔记(二十):delay guarantees延迟速度保证
  10. linux下nginx环境搭建
  11. java彩票开奖程序_用java 实现彩票摇奖,猜拳程序
  12. pgadmin3简单使用
  13. JRebel的安装与激活
  14. 903C Boxes Packing
  15. 图片怎么转化word文档?分享一个实用的方法。
  16. C 实现黑客帝国数字雨
  17. Assassin’s Creed(hdu4415,贪心)
  18. TR069服务器配置DHCP/IP/PING/Tracert/HTTP/PPPoE等仿真诊断模板及IPWAN和PPPoE WAN模板创建
  19. python读取文件r_python读入文件时加r的作用?
  20. Python之复制的cookie参数处理成规整的参数值

热门文章

  1. C# Word脚注和交叉引用功能
  2. (保姆级)国内1块钱注册火爆全网的OpenAI-ChatGPT机器人
  3. microsoft bing browser advance search
  4. IE浏览器打开github点击code无响应
  5. jpg转换成pdf转换器免费版
  6. 利用python批量创建.xsh文件实现Xshell批量登录服务器
  7. mysql-mmm高可用群集
  8. 聪明的猴子 黑暗爆炸 - 2429
  9. java.lang.exceptionininitializererror_解决出现 java.lang.ExceptionInInitializerError错误问题
  10. 【LeetCode - 马化腾】第一次看到马总的代码