Unity之数据持久化(PlayerPrefs)

PlayerPrefs是Unity提供的一种简单而有效的数据持久化方案,它没有XML那么强大,但是适合用来做小项目。

在Mac OS X上PlayerPrefs存储在~/Library/PlayerPrefs文件夹,名为unity.[company name].[product name].plist,这里company和product名是在Project Setting中设置的,相同的plist用于在编辑器中运行的工程和独立模式.在Windows独立模式下,PlayerPrefs被存储在注册表的 HKCU\Software\[company name]\[product name]键下,这里company和product名是在Project Setting中设置的.

说说PlayerPrefs类函数

SetInt
设置由key确定的偏好值。
GetInt
如果存在,返回偏好文件中key对应的值。
SetFloat
设置由key确定的偏好值。
GetFloat
如果存在,返回偏好文件中key对应的值。
SetString
设置由key确定的偏好值。
GetString
如果存在,返回偏好文件中key对应的值。
HasKey
如果key在偏好中存在,返回true。
DeleteKey
从偏好中删除key和它对应的值。
DeleteAll
从偏好中删除所有key。请谨慎使用。


下面具体说吧

建立场景,添加一个Cube


下面就是写代码测试了


using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    
    string key = "objInfo";
    string data;

    void Start ()
    {
        if (PlayerPrefs.HasKey (key))
        {
            data = PlayerPrefs.GetString(key);
            string[] s = data.Split(',');
            Vector3 v = new Vector3(float.Parse(s[0]), float.Parse(s[1]), float.Parse(s[2]));
            transform.localScale = v;
        }
    }
    
    // Update is called once per frame
    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.F ))
        {
            string s = transform.localScale.x + "," + transform.localScale.y + "," + transform.localScale.z;
            PlayerPrefs.SetString(key ,s );
            Debug.Log("Saved!");
        }
    
    }
}


这段代码的作用是当按下f键之后保存当前Cube的大小。先获取游戏对象的大小然后按照一定的格式组织成string,将string存入PlayerPrefs。在游戏一开始运行的时候获取string然后解析出大小信息并设给游戏对象。


在编辑器了调整Cube




调整完成之后,我们按F键,然后数据被存储下来。

然后我们重新运行程序,刚刚的大小就会被重设回去。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值