您的位置:首页 > 移动开发 > Unity3D

Unity之数据持久化(PlayerPrefs)

2016-04-20 21:52 519 查看
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键,然后数据被存储下来。

然后我们重新运行程序,刚刚的大小就会被重设回去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: