0基础独立游戏开发指南 unity存档篇(二)

0基础独立游戏开发指南 unity存档篇(二)

首页游戏大全未转变者2联机版更新时间:2024-06-21

单机游戏常用的存读档方式

1).简介

这是比较常用的游戏存读档方式,通过JsonUtility将数据转化为json数据,然后将输入写入到本地文件中实现存档,当玩家加载游戏时读取本地文件数据实现读档。

注意并非所有的数据都能通过JsonUtility转化为json数据,它必须是 MonoBehaviour、ScriptableObject 或应用了 Serializable 属性的普通类/结构。要包含的字段的类型必须受序列化器支持;不受支持的字段以及私有字段、静态字段和应用了 NonSerialized 属性的字段会被忽略。

特别注意的是,泛型,字典,多维数组,委托是不被支持的序列化类型。

有种简易判断是否支持序列化的方法,就是将类型标记为 公有的[System.Serializable],观察编辑器中是否显示该字段并且没有报错,则该类型可支持序列化。

2).使用案例

//存档

public static void SaveByJson(string saveFileName, object data)

{

//将需要保存的数据转化为json格式

var json = JsonUtility.ToJson(data);

//此处需通过第一个参数获得不同系统保存文件夹的根路径,将其与savefilename连接获得文件保存的路径

var path = Path.Combine(Application.persistentDataPath, saveFileName);

//将json数据写入到路径的文件夹中实现存档的功能

File.WriteAllText(path, json);

}

//tip.将saveFileName用时间格式书写则可获得,不同时间保存的数据如

//读档,需使用到泛型类,因为需要保存的数据可能是不同的类

public static T LoadFromJson<T>(string saveFileName)

{

//获得需要读档的文件路径

var path = Path.Combine(Application.persistentDataPath, saveFileName);

//读取文件json数据

var json = File.ReadAllText(path);

//将json数据转化为T类型数据实现读档

var data = JsonUtility.FromJson<T>(json);

return data;

}

//删除存档

public static void DeleteSaveFile(string saveFileName)

{

//获得需要删除的文件路径

var path = Path.Combine(Application.persistentDataPath, saveFileName);

//删除该文件

File.Delete(saveFileName);

}

3) .总结

优点:

1. 格式简单便于阅读和编写

2. 适配性好,适用于多种编程语言

3. 轻量级,便于网络传输与解析

缺点:

1. 支持的数据类型有限,需要通过额外的转化将其转化为支持的数据类型

2. 数据安全性低,容易被修改

4).适用范围

1.联网数据存储

1.1 数据大小轻量级,可作为优秀的网络数据交换载体

1.2 云存档

2.单机数据存档

2.1 非敏感游戏数据存储

2.2 玩家的偏好设置

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved