Chinar 的初衷是将一种简单的生活方式带给世人 使有限时间 具备无限可能 |
助力快速熟悉 Unity EasySave 插件的使用,使你的储存更加方便! 为初学者节省宝贵的时间,避免采坑! |
EasySave 教程效果:
1
Intro —— 简介
EasySave —— 一款方便且强大的数据存储插件,我们可以用来存储多种类型的数据
1. 比 PlayerPrefs 更快
2. 它几乎可以保存任意类型,无需你去为序列化而烦恼
3. 关于跨平台性,亦是十分强大,只需一个插件,无需为更换平台而担心造成多余的开发,兼容问题
支持的平台有 | 类型 |
---|---|
PC / Mac / Linux | iOS版 |
Android的 | iOS版 |
Windows Phone 8 | WebGL的 |
Windows Universal Apps | Windows应用商店 |
黑莓10 | 持续开发中… |
神级英语学者,请直接看官网 —— EasySave官方网站
2
Precondition ―― 准备工作
请支持正版购买和下载
下载导入 Unity 过程就不说了,导入成功后如下图所示:Window 中会出现相应插件
(由于 Chinar 买的是正版,所以插件直接包含了
Easy Save2
和Easy Save3
)
3
Editor Window ―― 编辑器窗口
3.1 Home ―― 主页
点击 EasySave3 后会弹出插件编辑窗口,首先来了解 Home 页面
3.2 Settings ―― 设置
接着来看 Settings 页面:
为开发者提供可视化操作的配置途径,用来选择数据储存的方式、加密、默认保存路径等等…
接着我们来仔细了解下 Location 选项中的4个选项
类型 | 说明 |
---|---|
File类型 | 以文件的形式储存到本地 |
PlayerPrefs | 以数据持久化形式储存到本地缓存 |
Memory | 加载到内存中 |
Resources | 储存到 Resources 文件夹中 |
数据保存地址
Chinar 建议使用 PersistentDataPath ,它在各个平台中都可以正常储存。
接着看一下 Encryption Type –加密类型选项:
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法
是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS
PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
3.3 Tool ―― 工具
工具页面提供了几个按钮,便于我们开发使用。
1.打开 持久化数据目录
2.清除该路径下的数据文件
3.清空应用缓存
3.4 Types ―― 类型
3.5 Auto Save ―― 自动保存
我们可以在什么时候保存或加载呢?
我们可以在任何可以运行代码的地方保存和加载
但通常在游戏开始时Start
初始化中加载数据,并在程序退出时 UnityOnApplicationQuit
保存数据
除此之外,日常开发中也常用 OnApplicationPause
,在程序暂停时进行保存数据
4
usage ―― 用法
4.1 Data loading and saving ―― 数据的加载和保存
话不多说,首先来看一下最常用的几个方法:
方法名 | 作用 |
---|---|
ES3.Save<T>() | 保存数据 |
ES3.Load<T>() | 加载数据 |
ES3.LoadInto<T>() | 把数据,直接赋值给指定对象 |
ES3.KeyExists() | 判断该数据中,键是否存在 |
保存与加载
void Start()
{
ES3.Save<int>("ChinarInt", 123); //将整数 123 保存到名为 ChinarInt 的键中
int chinarInt = ES3.Load<int>("ChinarInt"); //获取数据中 (键:ChinarInt) 对应的值
print(chinarInt); //打印输出
}
4.2 The default path for data ―― 数据保存的默认路径
接下来,我们来探究一下默认情况下,数据保存到哪里了
点击 Window
--> EasySave3
--> Tools
打开ES3编辑器面板
用
记事本
打开,我们会看到数据的存储格式为JSON
格式
4.3 Extend API ―― 保存和加载的扩展 API
如果工程所需保存的数据,种类繁多,或是数据量庞大,所有数据都保存在这一个默认文件中
势必会造成数据管理上的不便,那么我们应该怎么办?
我们可以将数据进行分类管理
,并且分别保存
到我们指定的路径下的文件当中
EasySave<T>()
函数有多个重载
void Start()
{
// 将 数据 保存到 默认路径下的默认文件当中
ES3.Save<int>("ChinarInt", 666);
// 将 数据 保存到 默认路径下的 ChinarFile.es3 文件当中
ES3.Save<int>("ChinarInt", 777, "ChinarFile.es3");
// 将 数据 保存到 默认路径下的 ChinarFolder文件夹下的 ChinarFile.es3 文件当中
ES3.Save<int>("ChinarInt", 888, "ChinarFolder/ChinarFile.es3");
// 将 数据 保存到 默认路径下的 ChinarFolder文件夹下的 ChinarFile.es3 文件当中
ES3.Save<int>("ChinarInt", 999, "C:/Users/Administrator/Desktop/ChinarFile.es3");
}
如此一来,我们就解决了一个文件中数据保存量过大的问题
4.3 Load the assignment directly ―― 直接赋值
ES3.LoadInto<T>()
—— 把数据,直接赋值给指定对象
打开Unity,在场景中创建两个 Cube ,Cube1
和Cube2
设置 Cube1
的世界坐标为(5,5,5)
设置 Cube2
的世界坐标为(0,0,0)
1. 首先保存 Cube1 的 Transform 组件信息,到默认数据文件当中
2. 从默认数据文件当中读取"Chinar_Cube1"键所对应的的值,(Cube1 的 Transform
组件信息),直接赋值给指定对象 Cube2
public class ChinarEs3 : MonoBehaviour
{
public GameObject Cube1;
public GameObject Cube2;
void Start()
{
//首先保存 Cube1 的 Transform 组件信息,到默认数据文件当中
ES3.Save<Transform>("Chinar_Cube1", Cube1.transform);
//从默认数据文件当中读取"Chinar_Cube1"键所对应的的值,(Cube1 的 Transform 组件信息),直接赋值给指定对象 Cube2
ES3.LoadInto("Chinar_Cube1", Cube2.transform);
}
}
运行后,可以看到Cube2
的位置信息和Cube1
的位置信息一样了
4.4 Delete ―― 删除
方法名 | 作用 |
---|---|
ES3.DeleteKey() | 删除一条数据( 指定键 对应的数据 ) |
ES3.DeleteFile() | 删除一个数据文件 |
ES3.DeleteDirectory() | 删除一个目录 |
void Start()
{
ES3.DeleteKey("Chinar_Key", "ChinarFolder/ChinarFile3.es3"); // 从文件中删除一个键
ES3.DeleteFile("ChinarFolder/ChinarFile3.es3"); // 删除整个文件
ES3.DeleteDirectory("ChinarFolder/"); // 删除一个目录及其包含的所有文件
}
5
Encryption ―― 加密
默认情况下,我们的数据是不被加密的
EasySave3 为我们提供了一种加密方式: AES 加密
有两种 使用方式
1. 编辑器设置:默认加密
2.ES3Settings
脚本类:动态加密
void Start()
{
//第一步:声明一个 ES3Settings 对象
ES3Settings settings = new ES3Settings();
//第二步:设置加密方式为AES
settings.encryptionType = ES3.EncryptionType.AES;
//第三部:设置密码:密码要求为`string`类型
settings.encryptionPassword = "ChinarPassword";
//第四步:使用 settings 对象的设置信息,进行加密保存
ES3.Save<Transform>("Chinar_Cube1", Cube1.transform, Application.dataPath + "/ChinarFile4.es3", settings);
}
然后打开保存的数据文件,可以看到数据已经被加密了
再来看一下 默认加密
未完待续…
以上就是 EasySave3 的简单用法,更多用法请查看EasySave官方网站
仔细看 Chinar 的教程,可以免去看官方文档的烦恼,几乎重要用法都会讲到!
支持
May Be ―― 开发者,总有一天要做的事!
Chinar 提供一站式《零》基础教程 使有限时间 具备无限可能! |
Chinar 知你所想,予你所求!( Chinar Blog )


本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究
对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com
对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址