Unity Android PlayerPrefs目录位置,数据存储详解

开发平台:Unity 2019版本以上
编程平台:Visual Studio 2019
编程语言:C#

一、什么是PlayerPrefs?


描述:在游戏会话之间存储玩家偏好。值得注意的是,PlayerPrefs 仅适用于配置与存储小体量的本地数据。若期望存储体量大的数据,应建议考虑 Json \ XML \ CSV \ TXT \ SQL 等数据文件。而非使用 PlayerPrefs !!!

二、各平台下的数据存储位置

  • Windows平台:HKCU\Software\[公司名称]\[产品名称]下注册表内
  • Linux平台:~/.config/unity3d/[公司名称]/[产品名称] 下注册表内
  • Windows应用商店程序:%userprofile%\AppData\Local\Packages\[产品包 ID]>\LocalState\playerprefs.dat
  • Windows Phone 8:应用程序的本地文件夹中
  • Android平台:/data/data/pkg-name/shared_prefs/pkg-name.xml
  • WebGL平台:浏览器的 IndexedDB API
  • iOS平台:/Library/Preferences/[Bundle ID].plist

三、静态函数方法


通用

  • DeleteAll():删除偏好中的所有键和值
  • DeleteKey():删除偏好中指定的键与其对应的值
  • HasKey():检查偏好设置中是否存储Key
  • Save():将修改的偏好存入磁盘中



关于 Get 系列

一般情况下,只需 Get + 数据类型 获取匹配的键值即可,对于用法上有例如 GetSting(string key, string defaultValue) 的用法,意为如果没有 key 的值,返回一个默认值作为该 key 的值存储至本地注册表中。其效果等价于以下


登录后复制

public void Example() { 
	PlayerPrefs.SetString("Examlpe Key", "Hello PlayerPrefs");  
	var thisSTR = PlayerPrefs.GetString("Example Key") 
}

  • GetFloat():返回偏好设置中与key键对应的Float数据类型的值
  • GetInt():返回偏好设置中与key键对应的Int数据类型的值
  • GetString():返回偏好设置中与key键对应的String数据类型的值



关于 Set 系列

  • SetFloat():在偏好中,设置key键对应的Float数据类型的值
  • SetInt():在偏好中,设置key键对应的Int数据类型的值
  • SetString():在偏好中,设置key键对应的String数据类型的值

四、应用示例

  • PlayerPrefs适用于游戏的数据存储
    例如《愤怒的小鸟》存储玩家每局的最高分数,《俄罗斯方块》记录榜上前十的分数。
  • 记录用户的偏好设置
    例如 操控灵敏度,音量大小等


P1:一场游戏结束了,我们的数据有 玩家信息/玩家分数。

登录后复制


string playerName = "Mr.Doc";  //玩家名称
int t = 1008611;  //玩家游戏分数

P2:我们需要对数据进行存储,以便于下次重启游戏后,数据不会被重置。

  • 特别注意:每次建立键值时应注意使用PlayerPrefs.HasKey("键名")来判断是否已存在键值对象,否则新键值会覆盖原键值对象。


  • 登录后复制
PlayerPrefs.SetString("Player01", playerName);
PlayerPrefs.SetInt("Goual", t);

P3:我们再次打开分数排行榜时,排行榜需要获取历史的最高纪录。


登录后复制

string name = PlayerPrefs.GetString("Player");
float goal = PlayerPrefs.GetInt("Goal");

P4:将这些值赋予至Text组件上即呈现结果。

 补充说明:对于排行榜多个历史纪录的排行,可选择Dictionary<键,值>对存储的键与值进行存储。进行快速排序获取前5名或更多。超出显示的部分可选择删除,或者Dictionary<键,值>只用于存储前几个最大,每次新数据产生,对立面的值进行比较,替换或挤出最低纪录。

             

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空