Easy Save 2 说明文档简单翻译(三)

Encryption

EasySave给与你使用 AES 128-bit的加密能力。

要启用它,你需要设置encrypt参数为true,同时也可以设置加密密码。

加密is good for 混淆(obfuscation).However, when ultimate security is important we advise you instead store data on a secure server using HTTPS, which is supported by Easy Save.

   1: /* Save data with encryption */

   2: ES2.Save(123, "file.es?encrypt=true&password=pass");

   3: /* Load data with encryption */

   4: inti = ES2.Load<int>("file.es?encrypt=true&password=pass");

 

 

Saving and Loading From Web

EasySave允许你使用WEB PHP文件保存数据到MySQL,数据库由EasySave提供。

他保存到数据库使用EasySave自己的格式,你可以使用ES2Web.UploadRaw(string data)和ES2Web.LoadRaw()来上传于下载数据,从数据库中。

Web Setup

1. 从 Assets/Plugins/Easy Save 2/Web文件夹中找到ES2.php,ES2SQL.sql文件。

clipboard

2. 在一个MySQL中使用ES2SQL.sql文件。记住这个表的名称,待会你会用到。

clipboard[1]

注意:示意图只是显示你怎么使用PHPMyAdmin控制面板来插入表,并不是一定要用这中方式。

3. 打开ES2.php,修改其中的标记信息:hostnam,usernam,password,database name,

clipboard[2]

4. 也在这个文件中输入username与password, 在Unity中调用ES2Web功能时需要使用

clipboard[3]

5. 将这个文件放到你的web服务器,并进入这个网址,如果成功你会看到信息:

ES2.php and MySQL database are working correctly

6. 现在你可以在Unity中使用ES2Web了。

确定在使用ES2Web功能时,你提供的username password与ES2PHP中的一致。

    Saving to Web

我们使用协同来上传于下载, 这就允许我们使用多帧来下载数据。连我们建议熟悉下协同在尝试保存于下载web数据之前。

这个例子中,我们创建一个协同上传一个Mesh到web:

1. 首先,创建ES2Web对象,使用到ES2.php的URL作为path.在URL中我们也可以提供参数。一个重要的参数就是webfilename,这个决定了在我们MySQL服务器中的逻辑文件。

2. 另一个重要参数是webusername,webpassword,这两个就是在ES2PHP中的username,password.同时我们还可以使用tag与encrypt参数。

3. 现在我们yield ES2Web.Upload(data)来上传我们的数据。

4. 最后,我们通过ES2Web.errorcode与ES2Web.error检测是否有返回错误。下面会有错误列表。

   1: public IEnumerator UploadMesh(Meshmesh,stringtag)

   2: {

   3:     // Create a URL and add parameters to the end of it.

   4:     stringmyURL = "http://www.server.com/ES2.php";

   5:     myURL += "?webfilename=myFile.txt&webusername=user&webpassword=pass";

   6:     // Create our ES2Web object.

   7:     ES2Webweb = newES2Web(myURL + "&tag="+ tag);

   8:     // Start uploading our data and wait for it to finish.

   9:     yieldreturnStartCoroutine(web.Upload(mesh));

  10:  

  11:     if(web.isError)

  12:     {

  13:         // Enter your own code to handle errors here.

  14:         Debug.LogError(web.errorCode + ":"+ web.error);

  15:     }

  16: }

    Loading From Web

这个例子中我们从web下载一条数据,你也可以下载整个文件(只要不指定tag参数即可)

1. 首先,创建ES2Web 对象

2. yield ES2.Download().

3. 一旦下载完成,我们需要检查错误,

    1. 保存数据到本地文件使用ES2Web.SaveToFile(path)

    2. 直接从下载的数据中加载ES2Web.Load(tag),或其他load函数(看API)

   1: public IEnumerator DownloadMesh(stringtag)

   2: {

   3:     // Create a URL and add parameters to the end of it.

   4:     stringmyURL = "http://www.server.com/ES2.php";

   5:     myURL += "?webfilename=myFile.txt&webusername=user&webpassword=pass";

   6:     // Create our ES2Web object.

   7:     ES2Webweb = newES2Web(myURL + "&tag="+ tag);

   8:  

   9:     // Start downloading our data and wait for it to finish.

  10:     yieldreturnStartCoroutine(web.Download());

  11:  

  12:     if(web.isError)

  13:     {

  14:         // Enter your own code to handle errors here.

  15:         Debug.LogError(web.errorCode + ":"+ web.error);

  16:     }

  17:     else

  18:     {

  19:         // We could save our data to a local file and load from that.    

  20:         web.SaveToFile("myFile.txt");

  21:         // Or we could just load directly from the ES2Web object.

  22:         this.GetComponent<MeshFilter>().mesh = web.Load<Mesh>(tag);

  23:     }

  24: }

    Delete from Web

使用ES2Web.Delete(path)来删除数据,其他步骤通上面的一样

   1: public IEnumerator DeleteWebFile(stringfile)

   2: {

   3:     // Create a URL and add parameters to the end of it.

   4:     stringmyURL = "http://www.server.com/ES2.php";

   5:     myURL += "?webfilename="+file+"&webusername=user&webpassword=pass";

   6:     // Create our ES2Web object.

   7:     ES2Webweb = newES2Web(myURL);

   8:  

   9:     // Start downloading our data and wait for it to finish.

  10:     yieldreturnStartCoroutine(web.Delete());

  11:  

  12:     if(web.isError)

  13:     {

  14:         // Enter your own code to handle errors here.

  15:         Debug.LogError(web.errorCode + ":"+ web.error);

  16:     }

  17: }

    integrating with a login system(整合一个登陆系统)

ES2.php文件中包含一个 Authenticate($username,$password)方法,用来验证你的登陆。

username is the webusername specified in Unity.

password is the webPassword specified in Unity. By default Easy Save 2 sends the password as an MD5 hash, so you may need to convert your password to an MD5 hash using PHP’sMD5($str) method.

Alternatively you can get ES2 to send your password in plain text. To do this, set thehashType variable of your ES2Web objects to ES2Web.HashType.None. However, it is not advised that you do this unless you are using HTTPS.

The Authenticate method should return false if either the username or password do not match, or true if they both match.

    Error Codes

“00”

Unity有一个上传错误。可能是因为URL不存在,或Server关闭了。

“01”

不能连接到数据库,或数据库登陆错误

“02”

username,password与ES2.php中的不一致

’03”

ES2.php中没有数据接收到

“04”

数据库中找不到ES2相关的表

“05”

你要下载的数据根本不存在

 

 

Saving and Loading from Resources

Unity的Resources文件夹允许你在加载其中的文件,包括EasySave2的保存文件。

Saving to Resources

只有在Editor状态的时候EasySave才可以保存到Resources.如果没有这个文件夹就创建一个。

如果你想要保存数据到Resources并在之后的运行中使用它们,所有文件都必须以 .bytes 后缀。

因为ES2.Save允许一个绝对路径,我们可以使用Application.dataPath来获取我们Assets文件夹的绝对路径,从而可以获取Resources文件夹路径。

或你直接将文件拖到Resources中。

   1: ES2.Save(123, Application.dataPath+"/Resources/myFile.bytes?tag=myInt");

Loading From Resources

要从Resources中加载数据,你需要设置你的保存位置为Resources,你可以通过使用参数来设置,或通过使用ES2Settings对象。

注意不同于保存,,我们不需要提供Resources文件夹的路径。

   1: // Load from Resources using the savelocation parameter

   2: intmyInt = ES2.Load<int>("myFile.bytes?tag=myInt&savelocation=resources");

   3: // Load from Resources using ES2Settings

   4: ES2Settingssettings = newES2Settings();

   5: settings.location = ES2Settings.SaveLocation.Resources;

   6: intmyInt = ES2.Load<int>("myFile.bytes?tag=myInt", settings);

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *