#顶级创作挑战#
独立游戏中常用的文件保存方法
1 ) .概要
这是一种比较常用的游戏文件保存方法,通过JsonUtility将数据转换为json数据,将输入写入本地文件实现归档,玩家加载游戏时读取本地文件数据保存文件
请注意,并非所有数据都可以通过JsonUtility转换为json数据。 必须是应用了MonoBehaviour、ScriptableObject或Serializable属性的常规类/结构。 序列化程序必须支持要包括的字段类型。 应用了不支持的字段、专用字段、静态字段和非序列化属性的字段将被忽略。
请特别注意,泛型、字典、多维数组和委托是不支持的序列化类型。
要快速确定是否支持序列化,请将该类型标记为公共[System.Serializable],如果编辑器中显示字段且未报告错误,则该类型支持序列化
2 ) .使用示例
//存档
publicstaticvoidsavebyjson ( string savefilename,object data ) )。
{
//将应该保存的数据转换为json格式
var JSON=JSON utility.to JSON ( data );
//此处需要使用第一个参数获取不同系统保存文件夹的根路径,然后将其连接到savefilename以获取文件保存路径
varpath=path.com bine ( application.persistent datapath,saveFileName );
将json数据写入路径文件夹并进行归档的功能
file.writealltext(Path,json );
}
用时间格式写//tip.savefilename就可以取得。 在不同时间保存的数据
要读取//文件,需要将其用于通用类,因为要保存的数据可能是不同的类
publicstatictloadfromjsont (字符串服务文件名称) )。
{
//获取需要读文件的文档路径
varpath=path.com bine ( application.persistent datapath,saveFileName );
//读取文件json数据
varJSON=file.readalltext(path );
将json数据转换为t型数据读取文件
vardata=JSON utility.fromjsont ( JSON );
返回数据;
}
//删除归档文件
公共服务文件( string savefilename ) )。
{
//获取要删除的文件的路径
varpath=path.com bine ( application.persistent datapath,saveFileName );
//删除该文件
file.delete(savefilename;
}
3 ) .总结
优点:
1 .易读和易写的格式
2 .符合性好,适用于多种编程语言
3 .重量轻,便于网络传输和分析
坏处:
1 .支持的数据类型有限,必须通过附加转换将其转换为支持的数据类型
2 .数据安全性低,易修改
4 ) .适用范围
1 .网络数据存储
1.1数据大小轻量级,可作为优秀的网络数据交换载体
1.2云归档
2 .独立数据归档
2.1非敏感游戏数据存储
2.2玩家首选项
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/327197.html