Update document

pull/4/head
hevinci 2022-03-10 16:55:12 +08:00
parent fbef706388
commit fca99fe689
6 changed files with 117 additions and 90 deletions

View File

@ -0,0 +1,2 @@
# 进阶教程

81
Docs/CodeTutorial2.md Normal file
View File

@ -0,0 +1,81 @@
# 资源更新
**更新补丁清单**
对于联机运行模式,在初始化资源系统之后,需要立刻更新资源清单。
**注意**:在初始化资源系统的时候,可以选择是否忽略资源版本号,这会影响到我们的更新步骤。
- 没有忽略资源版本号在更新之前先获取更新的资源版本号一般通过HTTP访问游戏服务器来获取。
- 忽略资源版本号在更新的时候资源版本号可以设置为0。
````c#
private IEnumerator UpdatePatchManifest()
{
UpdateManifestOperation operation = YooAssets.UpdateManifestAsync(updateResourceVersion);
yield return operation;
if (operation.Status == EOperationStatus.Succeed)
{
//更新成功
}
else
{
//更新失败
Debug.LogError(operation.Error);
}
}
````
**补丁包下载**
在补丁清单更新完毕后,就可以更新资源文件了。
根据产品需求,可以选择更新全部资源,或者只更新部分资源。
补丁包下载接口:
- YooAssets.CreatePatchDownloader(string[] tags) 根据资源标签列表下载相关资源包文件
- YooAssets.CreateBundleDownloader(string[] locations) 根据资源对象列表下载相关资源包文件
````c#
IEnumerator Download()
{
string[] tags = { "buildin", "config" };
int downloadingMaxNum = 10;
int failedTryAgain = 3;
DownloaderOperation downloader = YooAssets.CreatePatchDownloader(tags, downloadingMaxNum, failedTryAgain);
//没有需要下载的资源
if (downloader.TotalDownloadCount == 0)
{
yield break;
}
//需要下载的文件总数和总大小
int totalDownloadCount = downloader.TotalDownloadCount;
long totalDownloadBytes = downloader.TotalDownloadBytes;
//注册回调方法
downloader.OnDownloadFileFailedCallback = OneDownloadFileFailed;
downloader.OnDownloadProgressCallback = OnDownloadProgressUpdate;
downloader.OnDownloadOverCallback = OnDownloadOver;
//开启下载
downloader.BeginDownload();
yield return downloader;
//检测下载结果
if (downloader.Status == EOperationStatus.Succeed)
{
//下载成功
}
else
{
//下载失败
}
}
````

View File

@ -118,3 +118,29 @@ void Handle_Completed(AssetOperationHandle handle)
} }
```` ````
**原生文件加载范例**
例如wwise的初始化文件
````c#
void Start()
{
//获取资源包信息
string location = "wwise/init.bnk";
BundleInfo bundleInfo = YooAssets.GetBundleInfo(location);
//文件路径
string fileSourcePath = bundleInfo.LocalPath;
string fileDestPath = $"{Application.persistentDataPath}/Audio/init.bnk";
//拷贝文件
File.Copy(fileSourcePath, fileDestPath, true);
//注意在安卓平台下可以通过如下方法判断文件是否在APK内部。
if(bundleInfo.IsBuildinJarFile())
{
...
}
}
````

View File

@ -1,86 +0,0 @@
# 资源更新
**更新补丁清单**
对于联机运行模式,在初始化资源系统之后,需要立刻更新资源清单。
在此之前需要获取更新的资源版本号一般通过HTTP访问游戏服务器来获取。
注意如果资源系统在初始化的时候选择忽略资源版本号那么更新的资源版本号可以设置为0。
````c#
private IEnumerator UpdatePatchManifest()
{
int updateResourceVersion = 123;
int timeout = 30;
UpdateManifestOperation operation = YooAssets.UpdateManifestAsync(updateResourceVersion, timeout);
yield return operation;
if (operation.Status == EOperationStatus.Succeed)
{
//更新成功
}
else
{
//更新失败
Debug.LogError(operation.Error);
}
}
````
**补丁包下载**
在补丁清单更新完毕后,就可以更新资源文件了。
根据产品需求,可以选择更新全部资源,或者只更新部分资源。
````c#
private DownloaderOperation _downloader;
/// <summary>
/// 创建下载器
/// </summary>
private void CreateDownloader()
{
string[] tags = { "buildin", "config" };
int downloadingMaxNum = 10;
int failedTryAgain = 3;
_downloader = YooAssets.CreatePatchDownloader(tags, downloadingMaxNum, failedTryAgain);
if (_downloader.TotalDownloadCount == 0)
{
//没有需要下载的资源
}
else
{
//需要下载的文件总数和总大小
int totalDownloadCount = _downloader.TotalDownloadCount;
long totalDownloadBytes = _downloader.TotalDownloadBytes;
}
}
/// <summary>
/// 开启下载
/// </summary>
private IEnumerator Download()
{
//注册回调方法
_downloader.OnDownloadFileFailedCallback = OneDownloadFileFailed;
_downloader.OnDownloadProgressCallback = OnDownloadProgressUpdate;
_downloader.OnDownloadOverCallback = OnDownloadOver;
//开启下载
_downloader.BeginDownload();
yield return _downloader;
//检测下载结果
if (_downloader.Status == EOperationStatus.Succeed)
{
//下载成功
}
else
{
//下载失败
}
}
````

View File

@ -12,7 +12,7 @@ YooAsset是一个基于Unity3D引擎的资源管理插件。
- **灵活高效的加密方案** - **灵活高效的加密方案**
提供多种加密策略,可以自定义加密规则,基于Unity官方的高效解密方案。 基于Unity官方的高效解密方案,可以自定义加密规则
- **基于引用计数方案** - **基于引用计数方案**
@ -48,7 +48,11 @@ YooAsset是一个基于Unity3D引擎的资源管理插件。
5. [资源部署](https://github.com/tuyoogame/YooAsset/blob/master/Docs/AssetDeploy.md) 5. [资源部署](https://github.com/tuyoogame/YooAsset/blob/master/Docs/AssetDeploy.md)
## 代码教程 ## 代码教程
1. [初始化](https://github.com/tuyoogame/YooAsset/blob/master/Docs/YooAssetInit.md) 1. [初始化](https://github.com/tuyoogame/YooAsset/blob/master/Docs/CodeTutorial1.md)
2. [资源更新](https://github.com/tuyoogame/YooAsset/blob/master/Docs/YooAssetUpdater.md) 2. [资源更新](https://github.com/tuyoogame/YooAsset/blob/master/Docs/CodeTutorial2.md)
3. [资源加载](https://github.com/tuyoogame/YooAsset/blob/master/Docs/YooAssetLoader.md) 3. [资源加载](https://github.com/tuyoogame/YooAsset/blob/master/Docs/CodeTutorial3.md)
## 进阶教程
1. [资源版本管理](https://github.com/tuyoogame/YooAsset/blob/master/Docs/AdvancedTutorial1.md)