Unity 基础 之 PlayerPrefs数据存储-阿里云开发者社区

开发者社区> 陈言必行> 正文

Unity 基础 之 PlayerPrefs数据存储

简介: PlayerPrefs 游戏存档俗称玩家偏好。 工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。
+关注继续查看

概念

PlayerPrefs 游戏存档俗称玩家偏好。 工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。类似于ios中的默认偏好设置(NSUserDefaults)用法类似

  • Windows

    在Windows平台下,PlayerPrefs被存储在注册表的 HKEY_CURRENT_USER\Softwarecompany name键下(打开“运行”输入regedit打开注册表),其中company name和product name名是在Project Setting中设置。

  • Linux

    在Linux,PlayerPrefs是储存在~/.config/unity3d/[CompanyName]/[ProductName]。其中CompanyName和ProductName名是在Project Setting中设置

  • WebPlayer 网页

    在网页平台,PlayerPrefs是储存在二进制文件,看下面的对应的各平台位置:

    Mac OS X: ~/Library/Preferences/Unity/WebPlayerPrefs

    Windows: %APPDATA%\Unity\WebPlayerPrefs

一个游戏存档文件对应一个web播放器URL并且文件大小被限制为1MB。如果超出这个限制,SetInt、SetFloat和SetString将不会存储值并抛出一个PlayerPrefsException异常。

存档类型可以有float,int,string 三种类型,每种类型分别对应着Set,Get两种方法,下面以float类型进行举例,int,string同理。

代码示例

SetInt(key:string, Value:int) 返回值 void
设置由key确定的偏好值。
参数:

  • 第一个参数表示存储数据的名称
  • 第二的参数表示具体存储的数值。
public class playerDemo: MonoBehaviour
{  
    public void Start()
    {  
        PlayerPrefs.SetInt("Score", 10);  
    }  
}  

GetInt(key:string,defaultValue:int=0) 返回值 int 。如果存在,返回偏好文件中key对应的值。

public class playerDemo: MonoBehaviour
{  
   public void Start()
   {  
      Debug.log(PlayerPrefs.GetInt("Score"));  
   }  
}

相关方法

PlayerPrefs 还有以下几个方法:

  • 是否包含输入键:

    public static bool HasKey(string key);

如果key在偏好中存在,返回true,否则返回false。

  • 删除指定键:

    public static void DeleteKey(string key);

从存储偏好中删除key和它对应的值。

  • 删除所有键:

    public static void DeleteAll();

从游戏存档中删除所有key。请谨慎使用。

  • 保存:

    public static void Save();

做了某些操作的之后进行保存操作

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Unity等待写入数据
EasyTouch中QuickGesture的用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
797 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10084 0
Unity 之数据集合解析
在日常开发中数据集合经常的会用到,使用频率较高的例如 List 、Dictionary,在数据集合中每种数据结构都有他们的优缺点,所以今天笔者对常用的数据集合归纳整理,一是防止自己忘记、二是希望能够帮助到对此理解不清晰的开发者 笔者的Unity 开发版本为 2017.
1026 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13890 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11889 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22404 0
+关注
陈言必行
一个从事Unity游戏开发攻城狮。文章皆为从零到一的入门级教程,也有很多工作中遇到的问题解析。
61
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载