Update document

pull/51/head
hevinci 2022-11-03 20:47:40 +08:00
parent 76e65286fd
commit 292fdb1288
8 changed files with 10 additions and 48 deletions

View File

@ -28,9 +28,13 @@
(4) 模拟构建模式在编辑器下配合EditorSimulateMode运行模式来模拟真实运行的环境。 (4) 模拟构建模式在编辑器下配合EditorSimulateMode运行模式来模拟真实运行的环境。
- **Build Version**
构建的资源包版本。
- **Build Package** - **Build Package**
需要构建的资源包名称。 构建的资源包名称。
- **Encryption** - **Encryption**
@ -70,38 +74,6 @@
点击构建按钮会开始构建流程,构建流程分为多个节点顺序执行,如果某个节点发生错误,会导致构建失败。错误信息可以在控制台查看。 点击构建按钮会开始构建流程,构建流程分为多个节点顺序执行,如果某个节点发生错误,会导致构建失败。错误信息可以在控制台查看。
### 资源包加密
编写继承IEncryptionServices接口的加密类。注意加密类文件需要放置在Editor文件夹里。
````C#
using System;
using YooAsset.Editor;
public class GameEncryption : IEncryptionServices
{
/// <summary>
/// 检测资源包是否需要加密
/// </summary>
bool IEncryptionServices.Check(string bundleName)
{
// 对配置表相关的资源包进行加密
return bundleName.Contains("assets/config/");
}
/// <summary>
/// 对数据进行加密,并返回加密后的数据
/// </summary>
byte[] IEncryptionServices.Encrypt(byte[] fileData)
{
int offset = 32;
var temper = new byte[fileData.Length + offset];
Buffer.BlockCopy(fileData, 0, temper, offset, fileData.Length);
return temper;
}
}
````
### 补丁包 ### 补丁包
构建成功后会在输出目录下找到补丁包文件夹,该文件夹名称为本次构建时指定的资源版本号。 构建成功后会在输出目录下找到补丁包文件夹,该文件夹名称为本次构建时指定的资源版本号。
@ -141,7 +113,6 @@ private static void BuildInternal(BuildTarget buildTarget)
buildParameters.PackageName = "DefaultPackage"; buildParameters.PackageName = "DefaultPackage";
buildParameters.PackageVersion = "1.0.0"; buildParameters.PackageVersion = "1.0.0";
buildParameters.VerifyBuildingResult = true; buildParameters.VerifyBuildingResult = true;
buildParameters.EncryptionServices = new GameEncryption();
buildParameters.CompressOption = ECompressOption.LZ4; buildParameters.CompressOption = ECompressOption.LZ4;
buildParameters.OutputNameStyle = EOutputNameStyle.HashName_Extension; buildParameters.OutputNameStyle = EOutputNameStyle.HashName_Extension;
buildParameters.CopyBuildinFileOption = ECopyBuildinFileOption.None; buildParameters.CopyBuildinFileOption = ECopyBuildinFileOption.None;

View File

@ -126,24 +126,15 @@ private IEnumerator TryUpdateStaticVersion()
{ {
// 如果获取远端资源版本成功,说明当前网络连接并无问题,可以走正常更新流程。 // 如果获取远端资源版本成功,说明当前网络连接并无问题,可以走正常更新流程。
...... ......
// 注意:在成功下载所有资源之后,我们需要记录当前最新的资源版本号
PlayerPrefs.SetString("STATIC_VERSION", packageCRC);
} }
} }
private IEnumerator TryUpdateStaticVersion() private IEnumerator WeaklyUpdate()
{ {
// 如果获取远端资源版本失败,我们走弱联网更新模式。 // 如果获取远端资源版本失败,我们走弱联网更新模式。
// 注意如果从来没有保存过版本信息则需要从内部读取StaticVersion.bytes文件的版本信息。 // 弱联网更新方法,会优先加载沙盒内的清单,如果不存在再加载内置清单。
string packageVersion = PlayerPrefs.GetString("STATIC_VERSION", string.Empty); // 在加载清单之后,验证清单内资源内容本地完整性。
if (packageVersion == string.Empty) var operation = package.WeaklyUpdateManifestAsync();
{
packageVersion = LoadStaticVersionFromStreamingAssets();
}
// 在弱联网情况下更新补丁清单
var operation = package.WeaklyUpdateManifestAsync(packageVersion);
yield return operation; yield return operation;
if (operation.Status == EOperationStatus.Succeed) if (operation.Status == EOperationStatus.Succeed)
{ {
@ -151,7 +142,7 @@ private IEnumerator TryUpdateStaticVersion()
} }
else else
{ {
// 指定版本的资源内容本地并不完整,需要提示玩家更新。 // 资源内容本地并不完整,需要提示玩家联网更新。
ShowMessageBox("请检查本地网络,有新的游戏内容需要更新!"); ShowMessageBox("请检查本地网络,有新的游戏内容需要更新!");
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 26 KiB