本地数据持久化
- 一、 PlayerPrefs
- 使用案例
- 二、xml
- 三、json
一、 PlayerPrefs
PlayerPrefs是unity自带的一个数据存储类 描述
PlayerPrefs
是一个在游戏会话之间存储玩家偏好的类。它可以将字符串、浮点数和整数值存储到用户的平台注册表中。Unity 根据应用程序运行的操作系统以不同方式存储“PlayerPrefs”数据。在本页给出的文件路径中,公司名称和产品名称是您在
Unity 的Player Settings 中设置的名称。独立播放器存储位置
在 macOS 上,PlayerPrefs
存储在~/Library/Preferences/com.ExampleCompanyName.ExampleProductName.plist.
Unity 对编辑器和独立播放器中的项目使用相同的 .plist 文件。在 Windows 上,PlayerPrefs
存储在HKCU\Software\ExampleCompanyName\ExampleProductNamekey 中。在 Linux 上,PlayerPrefs
存储在~/.config/unity3d/ExampleCompanyName/ExampleProductName.在 Windows 应用商店应用中,PlayerPrefs
存储在%userprofile%\AppData\Local\Packages[ProductPackageId]\LocalState\playerprefs.dat.在 Windows Phone 8 上,Unity 将 PlayerPrefs
数据存储在应用程序的本地文件夹中。有关详细信息,请参阅Directory.localFolder。在 Android 上,PlayerPrefs
存储在/data/data/pkg-name/shared_prefs/pkg-name.v2.playerprefs.xml. Unity
将 PlayerPrefs 数据存储在设备上的SharedPreferences 中。C#、JavaScript、Android Java
和本机代码都可以访问 PlayerPrefs 数据。在 WebGL 上,Unity 使用浏览器的 IndexedDB API 存储 PlayerPrefs
数据。有关更多信息,请参阅IndexedDB。编辑器内播放模式存储位置
在 macOS 上,PlayerPrefs 存储在/Library/Preferences/[bundle
identifier].plist.在 Windows 上,PlayerPrefs
存储在HKCU\Software\Unity\UnityEditor\ExampleCompanyName\ExampleProductNamekey
中。Windows 10 使用应用程序的 PlayerPrefs 名称。例如,Unity 添加一个DeckBase字符串并将其转换为
DeckBase_h3232628825。应用程序忽略扩展名。Unity 将 PlayerPrefs 存储在本地注册表中,没有加密。不要使用 PlayerPrefs 数据来存储敏感数据。
静态函数 | 说明 |
DeleteAll | 从首选项中删除所有键和值。谨慎使用。 |
DeleteKey | 从 PlayerPrefs 中删除给定的键。如果该键不存在,则 DeleteKey 没有影响。 |
GetFloat | 如果存在,则返回与首选项文件中的键对应的值。 |
GetInt | 如果存在,则返回与首选项文件中的键对应的值。 |
GetString | 如果存在,则返回与首选项文件中的键对应的值。 |
HasKey | 如果给定的键存在于 PlayerPrefs 中,则返回 true,否则返回 false。 |
Save | 将所有修改的首选项写入磁盘。 |
SetFloat | 设置由给定键标识的首选项的浮点值。您可以使用 PlayerPrefs.GetFloat 来检索此值。 |
SetInt | 为给定键标识的首选项设置单个整数值。您可以使用 PlayerPrefs.GetInt 来检索此值。 |
SetString | 为给定键标识的首选项设置单个字符串值。您可以使用 PlayerPrefs.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);
//清除所有记录
PlayerPrefs.DeleteAll();
//删除其中某一条记录
PlayerPrefs.DeleteKey("Age");
//将记录写入磁盘
PlayerPrefs.Save()
二、xml
三、json
————————————————
文档:https://docs.unity3d.com/ScriptReference/PlayerPrefs.html