您的位置:首页 > Web前端 > JavaScript

untiy初识之playerPrefs 和jsonUtility结合存储数据

2018-03-06 16:34 429 查看
playerPrefs 可以将数据存储到本地。cocos egret 都有类似的 比如egret的 localstorage

playerprefs 函数比较少,只用来做存储用



json utility 例子

using System;

[Serializable]
public class PlayerInfo {
public int score { get; set; }
public int highScore { get; set; }

public int nimamapi ;
public string[] nihao = new string[3];
public List<Vector2> test1 = new List<Vector2>();

public PlayerInfo() {
score = 1 ;
highScore = 10 ;

nimamapi = 100;
nihao[0] = "nihao1";
nihao[1] = "nihao2";
nihao[2] = "nihao3";

test1.Add(new Vector2(0,0));
test1.Add(new Vector2(1,1));
test1.Add(new Vector2(3,4));
}

public PlayerInfo PaseJson(string jsonString) {
return JsonUtility.FromJson<PlayerInfo>(jsonString);
}

public string ToJson() {
return JsonUtility.ToJson(this);
}

public void saveToLocal() {
PlayerPrefs.SetString("PlayerInfo", ToJson());

Debug.Log("~~~~~~~~~~ saveToLocal " + ToJson());
}

public string GetJsonStringFromLocal() {
if (!PlayerPrefs.HasKey("PlayerInfo")) {
PlayerPrefs.SetString("PlayerInfo", ToJson());

string js = ToJson();
Debug.Log("~~~~~~~~~~ GetJsonStringFromLocal " + ToJson());
}
return PlayerPrefs.GetString("PlayerInfo");
}
}


m_playerInfo = new PlayerInfo();
string jsonData = m_playerInfo.GetJsonStringFromLocal();
Debug.Log("~~~~~~~~~~ jsonData " + jsonData);
m_playerInfo = m_playerInfo.PaseJson(jsonData);

Debug.Log("~~~~~~~~~~ " + m_playerInfo);


这里打印出来的存储的json 字符串为

~~~~~~ jsonData {“nimamapi”:100,”nihao”:[“nihao1”,”nihao2”,”nihao3”],”test1”:[{“x”:0.0,”y”:0.0},{“x”:1.0,”y”:1.0},{“x”:3.0,”y”:4.0}]}

注意,这里给jsonUnitlity使用的必须是class , struct 或者monoBehavier 可序列化的类

并且 get set 的成员变量是不支持的, 必须是public 的成员变量

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: