Unity3D-----持久化数据

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");
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值