功能

在游戏会话中储存和访问游戏存档。这个是持久化数据储存,比如保存游戏记录。

静态函数

  • DeleteAll

    Removes all keys and values from the preferences. Use with caution. 从游戏存档中删除所有key。请谨慎使用。

  • DeleteKey

    Removes key and its corresponding value from the preferences. 从游戏存档中删除key和它对应的值。

  • GetFloat

    Returns the value corresponding to key in the preference file if it exists. 如果存在,返回游戏存档文件中key对应的浮点数值。

  • GetInt

    Returns the value corresponding to key in the preference file if it exists. 如果存在,返回游戏存档文件中key对应的整数值。

  • GetString

    Returns the value corresponding to key in the preference file if it exists. 如果存在,返回游戏存档文件中key对应的字符串值。

  • HasKey

    Returns true if key exists in the preferences. 如果key在游戏存档中存在,返回true。

  • Save

    Writes all modified preferences to disk. 写入所有修改参数到硬盘。

  • SetFloat

    Sets the value of the preference identified by key. 设置由key确定的浮点数值。

  • SetInt

    Sets the value of the preference identified by key. 设置由key键确定的整数值。

  • SetString

    Sets the value of the preference identified by key. 设置由key确定的字符串值。

代码:

  • 保存数据
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);

PlayerPrefs的存储是有局限的,在unty3D中只支持int,string,float三种数据类型的写和读。

扩展

由于vector3是Unity3d中非常常见的数据类型,因此在这里我举例把vector3类型扩展到PlayerPrefs里面.

        /// <summary>
/// 存储Vector3类型的值
/// </summary>
public static bool SetVector3(string key, Vector3 vector)
{
return SetFloatArray(key, new float[3] { vector.x, vector.y, vector.z });
} /// <summary>
/// 读取Vector3类型的值
/// </summary>
public static Vector3 GetVector3(string key)
{
float[] floatArray = GetFloatArray(key);
if (floatArray.Length < 3)
return Vector3.zero;
return new Vector3(floatArray[0], floatArray[1], floatArray[2]);
}

把上面的代码放到playerprefs原来的代码里面,就能保存和读取Vector3类型的数据了,其他类型的扩展类似,就不贴代码了.

Unity3d中的PlayerPrefs游戏存档API的扩展的更多相关文章

  1. c# unity PlayerPrefs 游戏存档,直白点就是讲游戏数据本地保存下来

    在游戏会话中储存和访问游戏存档.这个是持久化数据储存,比如保存游戏记录. 我的理解是通过某个特殊的标签来保存在本地,而且该标签为key的意思,初始值不用赋值. 在游戏开发中较为实用. 暂时用到了 Se ...

  2. Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节

    声明:   本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...

  3. (转)PlayerPrefs游戏存档

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

  4. PlayerPrefs游戏存档

    本地存储.相当于Flash里面的SharedObject. Android位置:机器自身存储的(非扩展卡)/data/data/appname/shared_prefs/{AppName}.xml,如 ...

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

    [Unity3D]Unity3D之 注册表动态存取游戏存档--PlayerPrefs类 1.Unity3D提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的 ...

  6. Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现

    喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanp ...

  7. [Unity3D]Unity3D持久性数据的游戏开发PlayerPrefs采用

    大家好,我是秦培,欢迎关注我的博客,我的博客地址">blog.csdn.net/qinyuanpei. 博主今天研究了在Unity3D中的数据持久化问题.数据持久化在不论什么一个开发领 ...

  8. 【Unity3d游戏开发】Unity3D中的3D数学基础---向量

    向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3 ...

  9. Unity3D游戏开发之在Unity3D中视频播放功能的实现

    版权声明:欢迎订阅公众号[5厘米的理想],愿生命里的每个小理想,都能成为生命里的小确幸.本文地址为: https://blog.csdn.net/qinyuanpei/article/details/ ...

随机推荐

  1. Linux 内存优化

    1.清理前内存使用情况 free -m2.开始清理   echo 1 > /proc/sys/vm/drop_caches 3.清理后内存使用情况 free -m 4.完成! 查看内存条数命令: ...

  2. windows service宿主web api使用"依赖注入"和“控制反转”的技术实践

    前言 自从几年前抛弃wcf,使用web api 来做服务器端开发之后,就不再迷惑了.但是因为本来从事传统行业管理软件开发,一般都以分布式应用开发为主.纯BS还是比较少,于是比较喜欢用windows s ...

  3. 做了个新的UWP类库 Sharp2D

    C#开发UWP的时候如果要实现高斯模糊效果的话,最好的选择似乎是微软的Win2D 但是Win2D太过庞大了,仅仅是庞大其实也没啥问题,毕竟net core就很庞大,但Win2d是一个Winmd组件 w ...

  4. TypeScript 优秀开源项目大合集

    TypeScript出来有段时间了,也冒出了很多用TypeScript开发的优秀开源项目,搜寻了一些基于TypeScript项目,分享给大家: https://github.com/brookshi/ ...

  5. 大型ERP系统在线体验

    ERP简单说明: AIO7构建了基于SOA三层架构的管理软件平台.客户通过网络即可得到ERP服务,不用安装服务器.不用建立数据中心.不用安装软件.无需专业IT支持,任何上网设备就可以使用高性能.功能集 ...

  6. Min Stack leetcode

    Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. pu ...

  7. 2429: [HAOI2006]聪明的猴子

    2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 448  Solved: 309[Submit][Statu ...

  8. JS中undefined与null的有趣 关系

    今天学习中遇到了一个有意思的问题. var obj = undefined 我们将一个对象设置为undefined typeof(obj)>>undefined 结果是undefined, ...

  9. 自学spring过程中碰到的问题list,一个一个解决

    1.spring的基本原理 2.spring注解有哪几种方式 3.什么情况下适合用哪种注解 4.@autowired @Resource 等的区别 5.spring是怎么使用反射的 6.cjlibe ...

  10. MySQL入门(上)

    1 课程回顾 自定义标签&编码实战 1)自定义标签步骤: 1.1 编写标签处理器类,继承SimpleTagSupport类,覆盖doTag方法 1.2 在WEB-INF目录下建立tld文件,在 ...