From 1bb70edd4b764a491f146f03ef114506669318fc Mon Sep 17 00:00:00 2001 From: hevinci Date: Wed, 4 May 2022 00:12:06 +0800 Subject: [PATCH] Update document --- Docs/AdvancedTutorial1.md | 2 - Docs/AssetBuilder.md | 32 ++++++++-------- Docs/AssetDebugger.md | 4 +- Docs/AssetGrouper.md | 80 ++++++++++++++++++++++++++------------- Docs/AssetReporter.md | 4 +- Docs/CodeTutorial2.md | 16 ++++++-- Docs/CodeTutorial3.md | 14 ++++++- 7 files changed, 96 insertions(+), 56 deletions(-) delete mode 100644 Docs/AdvancedTutorial1.md diff --git a/Docs/AdvancedTutorial1.md b/Docs/AdvancedTutorial1.md deleted file mode 100644 index 3741258..0000000 --- a/Docs/AdvancedTutorial1.md +++ /dev/null @@ -1,2 +0,0 @@ -# 进阶教程 - diff --git a/Docs/AssetBuilder.md b/Docs/AssetBuilder.md index 6134259..2f75bcb 100644 --- a/Docs/AssetBuilder.md +++ b/Docs/AssetBuilder.md @@ -12,22 +12,22 @@ 构建版本号,也是资源版本号,版本号必须大于零。 -- **Compression** +- **Build Mode** - 资源包的压缩方式。 + 构建模式:强制构建模式,增量构建模式,快速构建模式,演练构建模式。 - **Encryption** 加密类列表。 +- **Compression** + + 资源包的压缩方式。 + - **Append Extension** 构建的资源包文件名是否包含后缀格式。 -- **Force Rebuild** - - 是否为强制重新构建,如果不勾选则为增量构建模式。注意:强制重建会删除当前平台下所有的补丁包文件。 - - **Buildin Tags** 标记为安装包里的资源标签列表。构建成功后,会将相关标记的资源包拷贝到StreamingAssets文件夹下。 @@ -76,13 +76,13 @@ public class GameEncryption : IEncryptionServices 资源包文件都是以文件的哈希值命名。 -![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetBuilder-img4.jpg) +![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetBuilder-img4.png) ### 补丁清单 -补丁清单是一个Json格式的文本文件,里面包含了所有资源包的信息,例如:名称,版本,大小,CRC等。 +补丁清单是一个Json格式的文本文件,里面包含了所有资源包的信息,例如:名称,大小,CRC等。 -![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetBuilder-img2.jpg) +![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetBuilder-img2.png) ### Jenkins支持 @@ -99,22 +99,20 @@ private static void BuildInternal(BuildTarget buildTarget) // 构建参数 string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRoot(); AssetBundleBuilder.BuildParameters buildParameters = new AssetBundleBuilder.BuildParameters(); - buildParameters.IsVerifyBuildingResult = true; buildParameters.OutputRoot = defaultOutputRoot; buildParameters.BuildTarget = buildTarget; + buildParameters.BuildMode = EBuildMode.ForceRebuild; buildParameters.BuildVersion = buildVersion; - buildParameters.CompressOption = ECompressOption.LZ4; - buildParameters.AppendFileExtension = false; - buildParameters.EncryptionServices = new GameEncryption(); - buildParameters.IsForceRebuild = true; buildParameters.BuildinTags = "buildin"; + buildParameters.VerifyBuildingResult = true; + buildParameters.EnableAddressable = false; + buildParameters.AppendFileExtension = false; + buildParameters.EncryptionServices = new GameEncryption(); + buildParameters.CompressOption = ECompressOption.LZ4; // 执行构建 AssetBundleBuilder builder = new AssetBundleBuilder(); builder.Run(buildParameters); - - // 构建完成 - Debug.Log("构建完成"); } // 从构建命令里获取参数 diff --git a/Docs/AssetDebugger.md b/Docs/AssetDebugger.md index 2700fee..67f6095 100644 --- a/Docs/AssetDebugger.md +++ b/Docs/AssetDebugger.md @@ -8,9 +8,9 @@ ### 资源对象列表视图 -![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetDebugger-img1.jpg) +![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetDebugger-img1.png) ### 资源包列表视图 -![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetDebugger-img2.jpg) +![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetDebugger-img2.png) diff --git a/Docs/AssetGrouper.md b/Docs/AssetGrouper.md index 8b51316..a172cec 100644 --- a/Docs/AssetGrouper.md +++ b/Docs/AssetGrouper.md @@ -8,7 +8,11 @@ **注意**:该工具仅支持Unity2019+ -#### 着色器收集 +#### 公共设置 + +- Enable Addressable + + 启用可寻址资源定位系统。 - Auto Collect Shaders @@ -40,53 +44,75 @@ 收集路径,可以指定文件夹或单个资源文件。 +- **Collector Type** + + 收集器类型: + + - MainAssetCollector 收集参与打包的主资源对象,并写入到资源清单的资源列表里(可以通过代码加载)。 + - StaticAssetCollector 收集参与打包的主资源对象,但不写入到资源清单的资源列表里(无法通过代码加载)。 + - DependAssetCollector 收集参与打包的依赖资源对象,但不写入到资源清单的资源列表里(无法通过代码加载)。 + +- **AddressRule** + + 可寻址规则,规则可以自定义扩展。下面是内置规则: + + - AddressByFileName 以文件名为定位地址。 + + - AddressByGrouperAndFileName 以分组名称+文件名为定位地址。 + + - AddressByCollectorAndFileName 以收集器名+文件名为定位地址。 + + ````c# + public class AddressByFileName : IAddressRule + { + string IAddressRule.GetAssetAddress(AddressRuleData data) + { + return Path.GetFileNameWithoutExtension(data.AssetPath); + } + } + ```` + - **PackRule** - 打包规则,规则可以自定义扩展。下面是内置的打包规则: + 打包规则,规则可以自定义扩展。下面是内置规则: - PackSeparately 以文件路径作为资源包名,每个资源文件单独打包。 - - PackDirectory 以父类文件夹路径作为资源包名,打进一个资源包。 - - PackCollector 以收集器路径作为资源包名,打进一个资源包。 - - PackGrouper 以分组名称作为资源包名,打进一个资源包。 + - PackDirectory 以父类文件夹路径作为资源包名,文件夹下所有文件打进一个资源包。 + - PackTopDirectory 以收集器路径下顶级文件夹为资源包名,文件夹下所有文件打进一个资源包。 + - PackCollector 以收集器路径作为资源包名,收集的所有文件打进一个资源包。 + - PackGrouper 以分组名称作为资源包名,收集的所有文件打进一个资源包。 - PackRawFile 目录下的资源文件会被处理为原生资源包。 -````c# -//自定义扩展范例 -public class PackDirectory : IPackRule -{ + ````c# + //自定义扩展范例 + public class PackDirectory : IPackRule + { string IPackRule.GetBundleName(PackRuleData data) { - return Path.GetDirectoryName(data.AssetPath); //"Assets/Config/test.txt" --> "Assets/Config" + return Path.GetDirectoryName(data.AssetPath); //"Assets/Config/test.txt" --> "Assets/Config" } -} -```` + } + ```` - **FilterRule** - 过滤规则,规则可以自定义扩展。下面是内置的过滤规则: + 过滤规则,规则可以自定义扩展。下面是内置规则: - CollectAll 收集目录下的所有资源文件 - - CollectScene 只收集目录下的场景文件 - - CollectPrefab 只收集目录下的预制体文件 - - CollectSprite 只收集目录下的精灵类型的文件 -````c# -//自定义扩展范例 -public class CollectScene : IFilterRule -{ + ````c# + //自定义扩展范例 + public class CollectScene : IFilterRule + { public bool IsCollectAsset(FilterRuleData data) { - return Path.GetExtension(data.AssetPath) == ".unity"; + return Path.GetExtension(data.AssetPath) == ".unity"; } -} -```` - -- **NotWriteToAssetList** - - 资源对象不写入资源列表 + } + ```` - **AssetTags** diff --git a/Docs/AssetReporter.md b/Docs/AssetReporter.md index 12403d4..b6e3626 100644 --- a/Docs/AssetReporter.md +++ b/Docs/AssetReporter.md @@ -12,10 +12,10 @@ 可以查看资源对象列表以及每个资源对象所依赖的资源包。 -![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetReporter-img2.jpg) +![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetReporter-img2.png) ### 资源包列表视图 可以查看资源包列表以及每个资源包所包含的资源对象。 -![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetReporter-img3.jpg) +![image](https://github.com/tuyoogame/YooAsset/raw/main/Docs/Image/AssetReporter-img3.png) diff --git a/Docs/CodeTutorial2.md b/Docs/CodeTutorial2.md index 64b9043..89d43ae 100644 --- a/Docs/CodeTutorial2.md +++ b/Docs/CodeTutorial2.md @@ -56,16 +56,24 @@ private IEnumerator UpdatePatchManifest() 补丁包下载接口: -- YooAssets.CreatePatchDownloader(string[] tags) 根据资源标签列表下载相关资源包文件 -- YooAssets.CreateBundleDownloader(string[] locations) 根据资源对象列表下载相关资源包文件 +- YooAssets.CreatePatchDownloader(int downloadingMaxNumber, int failedTryAgain) + + 用于下载更新当前资源版本所有的资源包文件。 + +- YooAssets.CreatePatchDownloader(string[] tags, int downloadingMaxNumber, int failedTryAgain) + + 用于下载更新资源标签指定的资源包文件。 + +- YooAssets.CreateBundleDownloader(string[] locations, int downloadingMaxNumber, int failedTryAgain) + + 用于下载更新指定的资源列表依赖的资源包文件。 ````c# IEnumerator Download() { - string[] tags = { "buildin", "config" }; int downloadingMaxNum = 10; int failedTryAgain = 3; - DownloaderOperation downloader = YooAssets.CreatePatchDownloader(tags, downloadingMaxNum, failedTryAgain); + DownloaderOperation downloader = YooAssets.CreatePatchDownloader(downloadingMaxNum, failedTryAgain); //没有需要下载的资源 if (downloader.TotalDownloadCount == 0) diff --git a/Docs/CodeTutorial3.md b/Docs/CodeTutorial3.md index 0a19e7f..4a42e04 100644 --- a/Docs/CodeTutorial3.md +++ b/Docs/CodeTutorial3.md @@ -11,6 +11,12 @@ 统一约定:location为资源的定位地址,也是加载资源对象的唯一标识符。 +DefaultLocationServices 默认资源定位服务,location代表的是资源对象的相对路径。 + +AddressLocationServices 可寻址资源定位服务,location代表的是资源对象可寻址地址。 + +**注意**:以下范例执行环境是在DefaultLocationServices下。 + **加载路径的匹配方式** ````C# @@ -68,6 +74,10 @@ IEnumerator Start() **资源释放范例** +可以在切换场景之后调用资源释放方法或者写定时器间隔时间去释放。 + +注意:只有调用资源释放方法,资源对象才会在内存里被移除。 + ````c# private void UnloadAssets() { @@ -124,8 +134,8 @@ IEnumerator Start() IEnumerator Start() { string location = "wwise/init.bnk"; - string savePath = $"{Application.persistentDataPath}/Audio/init.bnk"; - RawFileOperation operation = YooAssets.LoadRawFileAsync(location, savePath); + string copyPath = $"{Application.persistentDataPath}/Audio/init.bnk"; + RawFileOperation operation = YooAssets.LoadRawFileAsync(location, copyPath); yield return operation; byte[] fileData = operation.GetFileData(); string fileText = operation.GetFileText();