From fca99fe689216823c62940a2db6ad547f68b9820 Mon Sep 17 00:00:00 2001 From: hevinci Date: Thu, 10 Mar 2022 16:55:12 +0800 Subject: [PATCH] Update document --- Docs/AdvancedTutorial1.md | 2 + Docs/{YooAssetInit.md => CodeTutorial1.md} | 0 Docs/CodeTutorial2.md | 81 ++++++++++++++++++ Docs/{YooAssetLoader.md => CodeTutorial3.md} | 26 ++++++ Docs/YooAssetUpdater.md | 86 -------------------- README.md | 12 ++- 6 files changed, 117 insertions(+), 90 deletions(-) create mode 100644 Docs/AdvancedTutorial1.md rename Docs/{YooAssetInit.md => CodeTutorial1.md} (100%) create mode 100644 Docs/CodeTutorial2.md rename Docs/{YooAssetLoader.md => CodeTutorial3.md} (82%) delete mode 100644 Docs/YooAssetUpdater.md diff --git a/Docs/AdvancedTutorial1.md b/Docs/AdvancedTutorial1.md new file mode 100644 index 0000000..3741258 --- /dev/null +++ b/Docs/AdvancedTutorial1.md @@ -0,0 +1,2 @@ +# 进阶教程 + diff --git a/Docs/YooAssetInit.md b/Docs/CodeTutorial1.md similarity index 100% rename from Docs/YooAssetInit.md rename to Docs/CodeTutorial1.md diff --git a/Docs/CodeTutorial2.md b/Docs/CodeTutorial2.md new file mode 100644 index 0000000..4c641e6 --- /dev/null +++ b/Docs/CodeTutorial2.md @@ -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 + { + //下载失败 + } +} +```` + + + diff --git a/Docs/YooAssetLoader.md b/Docs/CodeTutorial3.md similarity index 82% rename from Docs/YooAssetLoader.md rename to Docs/CodeTutorial3.md index 18aa901..154fcaf 100644 --- a/Docs/YooAssetLoader.md +++ b/Docs/CodeTutorial3.md @@ -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()) + { + ... + } +} +```` + diff --git a/Docs/YooAssetUpdater.md b/Docs/YooAssetUpdater.md deleted file mode 100644 index cc5ab93..0000000 --- a/Docs/YooAssetUpdater.md +++ /dev/null @@ -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; - -/// -/// 创建下载器 -/// -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; - } -} - -/// -/// 开启下载 -/// -private IEnumerator Download() -{ - //注册回调方法 - _downloader.OnDownloadFileFailedCallback = OneDownloadFileFailed; - _downloader.OnDownloadProgressCallback = OnDownloadProgressUpdate; - _downloader.OnDownloadOverCallback = OnDownloadOver; - - //开启下载 - _downloader.BeginDownload(); - yield return _downloader; - - //检测下载结果 - if (_downloader.Status == EOperationStatus.Succeed) - { - //下载成功 - } - else - { - //下载失败 - } -} -```` - diff --git a/README.md b/README.md index 8230193..3a7f1b2 100644 --- a/README.md +++ b/README.md @@ -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) ## 代码教程 -1. [初始化](https://github.com/tuyoogame/YooAsset/blob/master/Docs/YooAssetInit.md) -2. [资源更新](https://github.com/tuyoogame/YooAsset/blob/master/Docs/YooAssetUpdater.md) -3. [资源加载](https://github.com/tuyoogame/YooAsset/blob/master/Docs/YooAssetLoader.md) +1. [初始化](https://github.com/tuyoogame/YooAsset/blob/master/Docs/CodeTutorial1.md) +2. [资源更新](https://github.com/tuyoogame/YooAsset/blob/master/Docs/CodeTutorial2.md) +3. [资源加载](https://github.com/tuyoogame/YooAsset/blob/master/Docs/CodeTutorial3.md) + +## 进阶教程 + +1. [资源版本管理](https://github.com/tuyoogame/YooAsset/blob/master/Docs/AdvancedTutorial1.md)