👨💻个人主页:@元宇宙-秩沅
👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
👨💻 本文由 秩沅 原创
👨💻 专栏交流 | 🧧 |
---|---|
🟥✨Unity100个实战基础✨🟥 | 🎁 |
🟦✨ Unity100个精华一记✨🟦 | 🎁 |
🟩✨ Unity50个demo案例教程✨🟩 | 🎁 |
🟨✨ Unity100个精华细节BUG✨🟨 | 🎁 |
⭐前言⭐
🎶(1) Json信息传输
用户信息信息存储
排行榜信息存储
- 专门设置一个Json文件夹专门存储注册的各种用户,重新进入游戏也可以读取他们的信息(如排行榜获取)
- 例:该用户玩家无尽模式3100分,排序直接上榜
🎶(2) 数据基类
用户们的数据
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------
//-------功能: 用户们的数据
//-------创建者: -------
//------------------------------
public class AcountData
{
public List<string> aount = new List<string>();
}
临时登录面板数据
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目: ______________
//___________功能: 临时记住登录面板数据
//___________创建者:
//_____________________________________
//-------------------------------------
public class LoginData : SingleManager<LoginData>
{
//登录数据
//1.用户名和密码
public string userName;
public string password;
//2.记住密码和自动登录
public bool autoRP;
public bool atoLoginl;
}
玩家数据
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:
//___________功能: 玩家数据管理
//___________创建者:
//_____________________________________
//-------------------------------------
public class PlayerData
{
public string userName; //用户姓名
public string password; //通过密码
//游戏总分数
public int AllScore;
public int livingScore;
public int foreverScore;
}
Json管理器
using LitJson;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
/// <summary>
/// 序列化和反序列化Json时 使用的是哪种方案
/// </summary>
public enum JsonType
{
JsonUtlity,
LitJson,
}
/// <summary>
/// Json数据管理类 主要用于进行 Json的序列化存储到硬盘 和 反序列化从硬盘中读取到内存中
/// </summary>
public class JsonManager
{
private static JsonManager instance = new JsonManager();
public static JsonManager Instance => instance;
private JsonManager() { }
public void SaveData(object data, string fileName, JsonType type = JsonType.LitJson)
{
string path = Application.persistentDataPath + "/" + fileName + ".json";
string jsonStr = "";
switch (type)
{
case JsonType.JsonUtlity:
jsonStr = JsonUtility.ToJson(data);
break;
case JsonType.LitJson:
jsonStr = JsonMapper.ToJson(data);
break;
}
File.WriteAllText(path, jsonStr);
}
/// <summary>
/// Json反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fileName"></param>
/// <param name="type"></param>
/// <returns></returns>
public T LoadData<T>(string fileName, JsonType type = JsonType.LitJson) where T : new()
{
//先判断 是否存在streamingAssets中
string path = Application.streamingAssetsPath + "/" + fileName + ".json";
if (File.Exists(path)) Debug.Log("存在");
else
//如果不存在默认文件 就从 persistentDataPath文件夹中去寻找
path = Application.persistentDataPath + "/" + fileName + ".json";
//如果读写文件夹中都还没有 那就返回一个默认对象
if (!File.Exists(path))
{
Debug.Log("两个文件存中都不存在");
return new T();
}
//进行反序列化
string jsonStr = File.ReadAllText(path);
//数据对象
T data = default(T);
switch (type)
{
case JsonType.JsonUtlity:
data = JsonUtility.FromJson<T>(jsonStr);
break;
case JsonType.LitJson:
data = JsonMapper.ToObject<T>(jsonStr);
break;
}
//把对象返回出去
return data;
}
}
⭐🅰️⭐
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!、