ps:发文章只是为了稳固自己的学习记录一下,如果有什么错误麻烦多指教
数据的存档目前学习了使用Unity里的PlayerPrefs的单个保存方式和使用Json保存
1:PlayerPrefs单个保存:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SaveOrLoad : MonoBehaviour
{
//定义每个变量
public string name;
public int lever;
public float coin;
//获取每个变量的引用
public Text nameTxt;
public Text leverTxt;
public Text coinTxt;
//写一个加载数据的方法,把目前的值传给游戏面板
void UpdateUI()
{
nameTxt.text = name;
leverTxt.text = lever.ToString();
coinTxt.text = coin.ToString();
}
//BUtton加载点击事件
public void LoadByDate()
{
LoadLocalityData();
UpdateUI();
}
public void SaveBtnData()
{
SaveByDate();
}
//playerPrefs单个保存
//把数据保存到本地
void SaveByDate()
{
PlayerPrefs.SetString("PlayerName", name);
PlayerPrefs.SetInt("PlayerLever", lever);
PlayerPrefs.SetFloat("PlayerCoin", coin);
PlayerPrefs.Save();
}
//加载本地数据上传
void LoadLocalityData()
{
name = PlayerPrefs.GetString("PlayerName");
lever = PlayerPrefs.GetInt("PlayerLever");
coin = PlayerPrefs.GetFloat("PlayerCoin");
}
}
保存本地数据:使用PlayerPrefs.SetInt(key,value)进行保存数据到本地注册表里
2:读取本地数据:使用PlayerPrefs.GetInt(key)进行读取本地数据之后再赋值给当前的变量进行一个数据读取的转化
使用Json存档:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[System.Serializable]
public class Data
{
//存储数据的变量
public string name;
public int lever;
public float coin;
public string id;
public int count;
}
public class SystenObj : MonoBehaviour
{
public Data data = new Data();
//显示
public Text nameTxt;
public Text leverTxt;
public Text coinTxt;
public Text NameText;
public Text TXT;
void UpdateUI()
{
nameTxt.text = data.name;
leverTxt.text = data.lever.ToString();
coinTxt.text = data.coin.ToString();
}
void UpdateDate()
{
data.name = NameText.text;
}
/// <summary>
/// 加载数据的事件
/// </summary>
public void LoadByBtn()
{
LoadByJson();
UpdateUI();
}
/// <summary>
/// 定一个保存到本地的事件
/// </summary>
public void SaveByBtn()
{
UpdateDate();
SaveByJson();
}
void SaveByJson()
{
string json = JsonUtility.ToJson(data);
Debug.Log(json);
PlayerPrefs.SetString("PlayerJson", json);
}
void LoadByJson()
{
string json = PlayerPrefs.GetString("PlayerJson");
data = JsonUtility.FromJson<Data>(json);
}
}
1:定义一个数据类,把需要存储的数据变量写在类里,这里可以把这个类序列化一下[System.Serializable]可以在编辑器里看见
2:保存本地数据:使用JsonUtilty.ToJson(data),使用这个方法可以把数据转换成一个string的json类型,再使用PlayerPrefs.SetString(key,value),把数据存储到本地
3:
读取本地数据:使用PlayerPrefs.GetString(key)读取本地数据之后,赋值给一个string类型,然后再通过JsonUtlty.FromJson(json)赋值给数据即可完成读取
以上就是使用PlayerPref的两种存储方式,单个存储和使用Json
除了使用playerprefs之外还可以使用File和json存储