【Unity3D】Unity3D之 注册表动态存取游戏存档——PlayerPrefs类

1.Unity3D提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。

2.PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。
    分别对应的函数为:
    SetInt();保存整型数据;
    GetInt();读取整形数据;

SetFloat();保存浮点型数据;
    GetFlost();读取浮点型数据;

SetString();保存字符串型数据;
    GetString();读取字符串型数据;

//保存数据
PlayerPrefs.SetString("Name",mName);
PlayerPrefs.SetInt("Age",mAge);
PlayerPrefs.SetFloat("Grade",mGrade)
//读取数据
mName=PlayerPrefs.GetString("Name","DefaultValue");
mAge=PlayerPrefs.GetInt("Age",0);
mGrade=PlayerPrefs.GetFloat("Grade",0F);

  

  3.通过上面两段代码,我们可以发现两点:

1)、Unity3D中的数据持久化是以键值的形式存储的,可以看作是一个字典。

2)、Unity3D中值是通过键名来读取的,当值不存在时,返回默认值。

目前,在Unity3D中只支持int、string、float三种数据类型的读取,所以我们可以使用这三种数据类型来存储简单的数据。目前Unity3D中用于数据持久化的类为layerPrefs,主要的类方法有:

static function DeleteAll(): void
描述:从设置文件中移除所有键和值,谨慎的使用它们。 static function DeleteKey(key: string): void
描述:从设置文件中移除key和它对应的值。 static function GetFloat(key: string, defaultValue: float=OF): float
描述:如果存在,返回设置文件中key对应的值.如果不存在,它将返回defaultValue。 static function GetInt(key: string, defaultValue: int): int
描述:返回设置文件中key对应的值,如果存在.如果不存在,它将返回defaultValue。 static function GetString(key: string, defaultValue: string=**): string
描述:返回设置文件中key对应的值,如果存在.如果不存在,它将返回defaultValue. static function HasKey(key: string): bool
描述:在设置文件如果存在key则返回真. static function SetFloat(key: string, value: float): void
描述:设置由key确定的值. static function SetInt(key: string, value: int): void
描述:设置由key确定的值. static function SetString(key: string, value: string): void
描述:设置由key确定的值.

  

4.这些函数的用法基本一致使用Set进行保存,使用Get进行读取.

5.首先我们点击Unity3D中的File ->Build Settings 选择我们的PC端,点击下面的Player Settings,我们在右侧会出现一个【Inspector】面板,我们在开头会看到如图:

我们将Company Name和Product Name更改成我们喜欢的名字.

  5.然后,我们【Win + R】输入我们输入框中的单词,回车,这里我们打开了注册表,找到【HKEY_CURRENT_USER】,找到【HKEY_CURRENT_USER\SOFTWARE】,我们在SOFTWARE里面,并没有找到我们刚才定义的LDSCode,这是因为我们并没有存储数据,只有存储数据之后才能出现!

最新文章

  1. BFC与CFC
  2. [转] 移动前端不得不了解的HTML5 head 头标签
  3. C#实现WinForm DataGridView控件支持叠加数据绑定
  4. <welcome-file-list>标签的控制作用以及在springmvc中此标签的的配置方式
  5. 基于SlidePanelLayout实现ResideMenu
  6. Spring mvc4 + ActiveMQ 整合
  7. Django忘记管理员账号和密码的解决办法
  8. 使用httputils上传图片到服务器
  9. 【转载】MySQL innodb_table_stats表不存在的解决方法
  10. [Jobdu] 题目1521:二叉树的镜像
  11. eclipse手动添加源码
  12. LED的串联电阻值的计算
  13. box-shadow IE8兼容处理
  14. Do you kown Asp.Net Core -- 配置Kestrel端口
  15. vue-router下的html5 history在iis服务器上的设置 vue去掉#
  16. BZOJ 1443 游戏(二分图博弈)
  17. 函数使用十二:BAPI_MATERIAL_BOM_GROUP_CREATE(CS61)
  18. Eclipse 中yml自动提示功能相关设置
  19. 深入分析 Java 中的中文编码问题【转】
  20. VM虚拟机安装的XP如何全屏

热门文章

  1. IE10、IE11出现“__doPostBack未定义”的解决办法。
  2. js密码强度
  3. QoS 测量 (目标,方法,协议)
  4. Network Link Conditioner模拟不同网络环境
  5. js 处理url中文参数 java端接收处理
  6. SIFT算法的应用--目标识别之Bag-of-words模型
  7. java中如何忽略字符串中的转义字符--转载
  8. Creating Your Own Server: The Socket API, Part 1
  9. Sum of divisors
  10. Flips测试类(page43)