PlayerPrefs类
- Unity提供了一个本地持久化保存与读取数据的类-----PlayerPrefs类。它的工作原理是以键值对的形式将数据保存在文件中,这就好比给需要保存每一个数据赋予一个名称,将其成功存入本地文档中,程序就可以根据这个名称取出上次存储的数据.
保存与读取数据
- PlayerPrefs类可保存和读取三种基本的数据类型,它们是浮点型、整型、字符串类型,涉及的方法如下:
SetFloat() : 保存浮点型
SetIng() : 保存整型
SetString() : 保存字符串类型
GetFloat() : 获取浮点型
GetIng() : 获取整型
GetString() : 获取字符串类型
//保存整数
PlayerPrefs.SetFloat("mynum",99.8);
//判断是否有这个键值
if(PlayerPrefs.HasKey("mynum")){
//读取整数
Debug.Log(PlayerPrefs.GetFloat("mynum"));
}
删除数据
- PlayerPrefs提供了两种删除数据的方法:
1、删除某一项数据
2、删除所有数据
为了安全起见,删除数据还需要判断系统中是否存在该数据。 - 删除数据的方法如下
DeleteAll():将所有键对应的值数据全部删除。
DeleteKey(string key):删除某一项数据,其参数为所删除数据的名称。
HasKey(string key):判断是否存在该项数据,其参数为判断的数据名称
应用
例如,在unity当中,游戏角色通关进入下一关,即另一个Scene当中,原来的角色被创建需要是原来在前一关设置好的服装类型,即可以用PlayerPrefs类进行存储索引,然后在下个场景当中进行提取,并进行服装设置,就可以保证服装类型的不变。
例如以下代码:
if (GUILayout.Button("服装1"))
{
clothRenderer.material.mainTexture = cloth[0];
wpMode.mesh = wpModeCloth[0];
wp.material.mainTexture = wpCloth[0];
clothIndex = 0;
}
if (GUILayout.Button("服装2"))
{
clothRenderer.material.mainTexture = cloth[1];
wpMode.mesh = wpModeCloth[1];
wp.material.mainTexture = wpCloth[1];
clothIndex = 1;
}
if (GUILayout.Button("保存服装,并开始游戏"))
{
PlayerPrefs.SetInt("clothIndex",clothIndex);
SceneManager.LoadScene("Goblin");
}