在Unity3d中,游戏的存档与读档主要由PlayerPrefs类来完成,在Windows下PlayerPrefs存档主要存储在注册表中,路径为HKCU\Software[company name][product name] ,这里的company name和product name由作者自己确定,在Edit->Project Settings->Player中可以设置

PlayerSettings视图

那么如何设计游戏存档呢?
以笔者个人的经验而言,在游戏设计之初,我们就应该想好需要存档的数据,为需要保存的数据或状态设计可供读取的状态标志,以便以后在设计存档时,提供给PlayerPrefs类的方法使用。
PlayerPrefs类提供如下方法供设计者使用

可以看到,PlayerPrefs类中没有提供对bool型数据的存储方法,由此可以看出为需要保存的数据或状态设计可供读取的状态标志的重要性,否则那些由bool型数据确定的状态将无法被存档。

下面给一段示例代码:

 /** inventory.charge--int--能量电池数量* inventory.playerTransform--float--玩家位置* talk.yeshu--int--man的任务进度* talk.wyeshu--int--women的任务进度*/void gameSave() {PlayerPrefs.SetInt("charge", inventory.charge);PlayerPrefs.SetInt("yeshu", talk.yeshu);PlayerPrefs.SetInt("wyeshu", talk.wyeshu);PlayerPrefs.SetFloat("playerPosition.x", inventory.playerTransform.position.x);PlayerPrefs.SetFloat("playerPosition.y", inventory.playerTransform.position.y);PlayerPrefs.SetFloat("playerPosition.z", inventory.playerTransform.position.z);PlayerPrefs.Save();}void gameRead() {if (PlayerPrefs.HasKey("charge"))//存档读取的一般方式inventory.charge = PlayerPrefs.GetInt("charge");if (PlayerPrefs.HasKey("yeshu"))talk.yeshu = PlayerPrefs.GetInt("yehsu");if (PlayerPrefs.HasKey("wyeshu"))talk.wyeshu = PlayerPrefs.GetInt("wyeshu");if (PlayerPrefs.HasKey("playerPosition.x"))x = PlayerPrefs.GetFloat("playerPosition.x");if (PlayerPrefs.HasKey("playerPosition.y"))y = PlayerPrefs.GetFloat("playerPosition.y");if (PlayerPrefs.HasKey("playerPosition.z"))z = PlayerPrefs.GetFloat("playerPosition.z");inventory.playerTransform.position = new Vector3(x, y, z);}

那么对于已经产生的注册表我们如何查看呢?
在Windows下通过注册表编辑器查看注册表,通过Win+R将呼出“运行”,输入“regedit”即可打开注册表编辑器在HKCU\Software[company name][product name] 路径下即可找到我们已经生成的注册表

【Unity3d】存档与读档相关推荐

  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. c++游戏小技巧2:存读档

    <好久没更了>,今天难得有时间,更篇小技巧. 粥锁粥之,<一些游戏没有存档,当你玩到满级时,可能会很尴尬> 为了避免尴尬 流这种东西脱颖而出 ----------------  ...

最新文章

  1. C#如何得到运行中和杀死运行中的进程?
  2. 讲讲我和Spring创始级程序员共同review代码的故事
  3. VTK修炼之道8_三维场景基本要素:相机
  4. SQLiteHelper
  5. 记录今天写的几个正则,数字范围的校验
  6. python怎么安装beautifulsoup,python – 安装BeautifulSoup
  7. 牛客网——约数的个数
  8. image.merge图像有什么变化_经常用到压缩软件的你,知道什么是无损压缩和有损压缩吗?...
  9. 1.VUE 安装以及vue.js下的第一个hello world
  10. VBM计算操作过程记录
  11. USGS下载LANDSAT5 2级别 影像问题
  12. mysql 怎么解决幻读的问题
  13. Mac VMWare键盘鼠标失灵
  14. 电脑计算机无法找到脚本文件夹,电脑开机老是提醒无法找到脚本文件的处理方法...
  15. 北京大学计算机学院的院徽,院徽、logo和学院口号征集活动
  16. 白盒测试之逻辑覆盖准则
  17. 平阴县实验学校计算机老师,人物 | 平阴县实验学校邢珍:认认真真做事,踏踏实实做人...
  18. c99标准--C语言标准
  19. Effective C++ 规则39:明智而谨慎的使用private继承
  20. 【shell】远程执行shell|多节点并行执行shell|远程执行注意

热门文章

  1. python爬取淘宝数据
  2. 密码忘了怎么办? 5种破密方法轻松搞定
  3. 图像融合初步认识--homesite of oliver rockinger主页内容
  4. mysql主从配置master、slaver
  5. Flink的重启策略(RestartStrategy)实战
  6. ESP8266/ESP-01固件下载方法
  7. python+pillow不规则图片合成合并
  8. 联想笔记本重装系统小结
  9. 发布infopath模板到sharepoint站点(Infopath 2007)
  10. Linux下安装及配置Discuz论坛