建设的网站如何让用户注册,多语言企业网站开发,高台县建设局网站,wordpress+培训行业主题Unity 数据存储PlayerPrefs管理类 Unity 数据存储PlayerPrefs管理类实现存取实体类对象存储格式为Json格式Singleton.csInventoryEntity.csDataManager.cs用法如下 Unity 数据存储PlayerPrefs管理类
实现存取实体类对象
存储格式为Json格式
源码如下#xff1a;
Singleton… Unity 数据存储PlayerPrefs管理类 Unity 数据存储PlayerPrefs管理类实现存取实体类对象存储格式为Json格式Singleton.csInventoryEntity.csDataManager.cs用法如下 Unity 数据存储PlayerPrefs管理类
实现存取实体类对象
存储格式为Json格式
源码如下
Singleton.cs //单例模板
public class SingletonT where T : new()
{private static T _Instance;public static T Instance{get{if (_Instance null){_Instance new T();}return _Instance;}}public Singleton(){}
}
InventoryEntity.cs
/// summary
/// 实体类
/// /summary
public class InventoryEntity {/// summary/// 金币/// /summarypublic int coins 0;/// summary/// 钻石/// /summarypublic int gams 0;/// summary/// 关卡/// /summarypublic int Levels 1;public InventoryEntity(){}public InventoryEntity(int coin, int gam, int level){this.coins coin;this.gams gam;this.Levels level;}
}
DataManager.cs
using UnityEngine;public class DataManager : SingletonDataManager
{/// summary/// 保存数据/// /summaryInventoryEntity m_Inventory;/// summary/// 初始化字典/// /summarypublic void Init(){m_Inventory GetObjectDataInventoryEntity(data);}#region 人物ID读写/// summary/// 记录人物ID/// /summaryprivate string m_playerId ;/// summary/// 设置人物ID/// /summary/// param nameid/parampublic void SetID(string id){m_playerId id;}/// summary/// 获取人物ID/// /summary/// returns/returnspublic string GetID(){return m_playerId;}#endregion#region 测试该存储#region 修改方法/// summary/// 修改金币/// /summarypublic void SetCoins(int coin){m_Inventory.coins coin;SaveObjectDate(data, m_Inventory);}/// summary/// 获取金币/// /summarypublic int GetCoins(){return m_Inventory.coins;}/// summary/// 修改宝石/// /summarypublic void SetGams(int gam){m_Inventory.gams gam;SaveObjectDate(data, m_Inventory);}/// summary/// 获取宝石/// /summarypublic int GetGams(){return m_Inventory.gams;}/// summary/// 修改关卡/// /summarypublic void SetLevels(int level){m_Inventory.Levels level;SaveObjectDate(data, m_Inventory);}/// summary/// 获取关卡/// /summarypublic int GetLevels(){return m_Inventory.Levels;}/// summary/// 修改全部属性/// /summarypublic void SetAll(int coin, int gam, int level){m_Inventory.coins coin;m_Inventory.gams gam;m_Inventory.Levels level;SaveObjectDate(data, m_Inventory);}/// summary/// 修改全部属性重载/// /summarypublic void SetAll(InventoryEntity entity){m_Inventory entity;SaveObjectDate(data, m_Inventory);}/// summary/// 奖励使用逻辑/// /summarypublic void SetAward(int awardcoin, int awardgam, int awardlevel){m_Inventory.coins awardcoin;m_Inventory.gams awardgam;m_Inventory.Levels awardlevel;SaveObjectDate(data, m_Inventory);}#endregion#endregion#region 泛型存取数据/// summary/// 存储指定类型/// /summarypublic void SaveObjectDateT(string key, T t, bool common false){if (common){PlayerPrefs.SetString(key, JsonUtility.ToJson(t));}else{PlayerPrefs.SetString(m_playerId key, JsonUtility.ToJson(t));}PlayerPrefs.Save();}/// summary/// 获取指定类型/// /summary/// typeparam nameT/typeparam/// param namekey/param/// param namecommon/param/// returns/returnspublic T GetObjectDataT(string key, bool common false) where T : new(){string Data null;if (common){Data PlayerPrefs.GetString(key, null);}else{Data PlayerPrefs.GetString(m_playerId key, null);}if (string.IsNullOrEmpty(Data)){return new T();}else{return JsonUtility.FromJsonT(Data);}}#endregion#region 存取数据/// summary/// 存储int类型/// /summarypublic void SaveIntDate(string key,int num, bool common false){if (common){PlayerPrefs.SetInt(key,num);}else{PlayerPrefs.SetInt(m_playerId key, num);}PlayerPrefs.Save();}/// summary/// 获取int类型/// /summary/// typeparam nameT/typeparam/// param namekey/param/// param namecommon/param/// returns/returnspublic int GetIntDataT(string key, bool common false) where T : new(){if (common){return PlayerPrefs.GetInt(key, -1);}else{return PlayerPrefs.GetInt(m_playerId key, -1);}}/// summary/// 存储Float类型/// /summarypublic void SaveFloatDate(string key, float num, bool common false){if (common){PlayerPrefs.SetFloat(key, num);}else{PlayerPrefs.SetFloat(m_playerId key, num);}PlayerPrefs.Save();}/// summary/// 获取Float类型/// /summary/// typeparam nameT/typeparam/// param namekey/param/// param namecommon/param/// returns/returnspublic float GetFloatData(string key, bool common false){if (common){return PlayerPrefs.GetFloat(key, -1);}else{return PlayerPrefs.GetFloat(m_playerId key, -1);}}/// summary/// 存储Bool类型/// /summarypublic void SaveBoolDate(string key, bool boolean, bool common false){if (common){PlayerPrefs.SetInt(key, boolean ? 1 : 0);}else{PlayerPrefs.SetInt(m_playerId key, boolean ? 1 : 0);}PlayerPrefs.Save();}/// summary/// 获取Bool类型/// /summary/// typeparam nameT/typeparam/// param namekey/param/// param namecommon/param/// returns/returnspublic bool GetBoolData(string key, bool common false){int? boolean null;if (common){boolean PlayerPrefs.GetInt(key, -1);}else{boolean PlayerPrefs.GetInt(m_playerId key, -1);}if (boolean 1) return true;else return false;}/// summary/// 存储Bool类型/// /summarypublic void SaveStrDate(string key, string str, bool common false){if (common){PlayerPrefs.SetString(key, str);}else{PlayerPrefs.SetString(m_playerId key, str);}PlayerPrefs.Save();}/// summary/// 获取Bool类型/// /summary/// typeparam nameT/typeparam/// param namekey/param/// param namecommon/param/// returns/returnspublic string GetStrData(string key, bool common false){if (common){return PlayerPrefs.GetString(key, );}else{return PlayerPrefs.GetString(m_playerId key, );}}#endregion}
用法如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class DataTest : MonoBehaviour {// Use this for initializationvoid Start () {DataManager.Instance.Init();Debug.LogError(金币DataManager.Instance.GetCoins());Debug.LogError(宝石DataManager.Instance.GetGams());Debug.LogError(关卡 DataManager.Instance.GetLevels());DataManager.Instance.SetAward(10,20,3);}}