Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持

Chinar blog www.chinar.xin

Unity插件 - EasySave中文详解


本文提供全流程,中文翻译。

Chinar 的初衷是将一种简单的生活方式带给世人

使有限时间 具备无限可能

Chinar ―― 心分享、心创新!

助力快速熟悉 Unity EasySave 插件的使用,使你的储存更加方便!

为初学者节省宝贵的时间,避免采坑!

EasySave 教程效果:
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第1张图片Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第2张图片


文章目录

  • 1
    • Intro —— 简介
  • 2
    • Precondition ―― 准备工作
  • 3
    • Editor Window ―― 编辑器窗口
      • 3.1 Home ―― 主页
      • 3.2 Settings ―― 设置
      • 3.3 Tool ―― 工具
      • 3.4 Types ―― 类型
      • 3.5 Auto Save ―― 自动保存
  • 4
    • usage ―― 用法
      • 4.1 Data loading and saving ―― 数据的加载和保存
      • 4.2 The default path for data ―― 数据保存的默认路径
      • 4.3 Extend API ―― 保存和加载的扩展 API
      • 4.3 Load the assignment directly ―― 直接赋值
      • 4.4 Delete ―― 删除
  • 5
    • Encryption ―― 加密
  • 支持
    • May Be ―― 开发者,总有一天要做的事!


全文高清图片,点击即可放大观看 (很多人竟然不知道)


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 中会出现相应插件
举个例子 Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第3张图片

(由于 Chinar 买的是正版,所以插件直接包含了 Easy Save2Easy Save3)


3

Editor Window ―― 编辑器窗口

3.1 Home ―― 主页

点击 EasySave3 后会弹出插件编辑窗口,首先来了解 Home 页面

主要是为了便于开发者联系、交流,提供文档链接支持等等…
举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第4张图片


3.2 Settings ―― 设置

接着来看 Settings 页面:

为开发者提供可视化操作的配置途径,用来选择数据储存的方式、加密、默认保存路径等等…
举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第5张图片

接着我们来仔细了解下 Location 选项中的4个选项

举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第6张图片

类型 说明
File类型 以文件的形式储存到本地
PlayerPrefs 以数据持久化形式储存到本地缓存
Memory 加载到内存中
Resources 储存到 Resources 文件夹中

数据保存地址

举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第7张图片
Chinar 建议使用 PersistentDataPath ,它在各个平台中都可以正常储存。

Unity 数据路径相关博文( Chinar Blog )

接着看一下 Encryption Type –加密类型选项:

举个例子
Directory
AES加密知识扩展:来自百度百科

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法
是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS
PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。


3.3 Tool ―― 工具

工具页面提供了几个按钮,便于我们开发使用。
1.打开 持久化数据目录
2.清除该路径下的数据文件
3.清空应用缓存

Tools 窗口会在2.使用 EasySave 中讲到。
举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第8张图片


3.4 Types ―― 类型


3.5 Auto Save ―― 自动保存

我们可以在什么时候保存或加载呢?

我们可以在任何可以运行代码的地方保存和加载

但通常在游戏开始时Start初始化中加载数据,并在程序退出时 UnityOnApplicationQuit 保存数据

除此之外,日常开发中也常用 OnApplicationPause ,在程序暂停时进行保存数据
举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第9张图片


4

usage ―― 用法

4.1 Data loading and saving ―― 数据的加载和保存

话不多说,首先来看一下最常用的几个方法:

方法名 作用
ES3.Save() 保存数据
ES3.Load() 加载数据
ES3.LoadInto() 把数据,直接赋值给指定对象
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编辑器面板
举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第10张图片
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第11张图片

记事本 打开,我们会看到数据的存储格式为JSON格式

Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第12张图片


4.3 Extend API ―― 保存和加载的扩展 API

如果工程所需保存的数据,种类繁多,或是数据量庞大,所有数据都保存在这一个默认文件中

势必会造成数据管理上的不便,那么我们应该怎么办?

我们可以将数据进行分类管理,并且分别保存我们指定的路径下的文件当中

EasySave()函数有多个重载

举个例子

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() —— 把数据,直接赋值给指定对象

打开Unity,在场景中创建两个 Cube ,Cube1Cube2

设置 Cube1 的世界坐标为(5,5,5)
设置 Cube2 的世界坐标为(0,0,0)
举个例子
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第13张图片

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的位置信息一样了
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第14张图片


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);
}

然后打开保存的数据文件,可以看到数据已经被加密了
Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第15张图片Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第16张图片


再来看一下 默认加密
未完待续…

以上就是 EasySave3 的简单用法,更多用法请查看EasySave官方网站

仔细看 Chinar 的教程,可以免去看官方文档的烦恼,几乎重要用法都会讲到!


支持

May Be ―― 开发者,总有一天要做的事!


拥有自己的服务器,无需再找攻略

Chinar 提供一站式《零》基础教程

使有限时间 具备无限可能!

Chinar 知你所想,予你所求!( Chinar Blog )


Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持_第17张图片
Chinar

END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: [email protected]

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

你可能感兴趣的:(Unity,3D,插件,Unity3D初级入门必学)