mirror of https://github.com/tuyoogame/YooAsset
Update document
parent
2922b44747
commit
1bb70edd4b
|
@ -1,2 +0,0 @@
|
||||||
# 进阶教程
|
|
||||||
|
|
|
@ -12,22 +12,22 @@
|
||||||
|
|
||||||
构建版本号,也是资源版本号,版本号必须大于零。
|
构建版本号,也是资源版本号,版本号必须大于零。
|
||||||
|
|
||||||
- **Compression**
|
- **Build Mode**
|
||||||
|
|
||||||
资源包的压缩方式。
|
构建模式:强制构建模式,增量构建模式,快速构建模式,演练构建模式。
|
||||||
|
|
||||||
- **Encryption**
|
- **Encryption**
|
||||||
|
|
||||||
加密类列表。
|
加密类列表。
|
||||||
|
|
||||||
|
- **Compression**
|
||||||
|
|
||||||
|
资源包的压缩方式。
|
||||||
|
|
||||||
- **Append Extension**
|
- **Append Extension**
|
||||||
|
|
||||||
构建的资源包文件名是否包含后缀格式。
|
构建的资源包文件名是否包含后缀格式。
|
||||||
|
|
||||||
- **Force Rebuild**
|
|
||||||
|
|
||||||
是否为强制重新构建,如果不勾选则为增量构建模式。注意:强制重建会删除当前平台下所有的补丁包文件。
|
|
||||||
|
|
||||||
- **Buildin Tags**
|
- **Buildin Tags**
|
||||||
|
|
||||||
标记为安装包里的资源标签列表。构建成功后,会将相关标记的资源包拷贝到StreamingAssets文件夹下。
|
标记为安装包里的资源标签列表。构建成功后,会将相关标记的资源包拷贝到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支持
|
### Jenkins支持
|
||||||
|
|
||||||
|
@ -99,22 +99,20 @@ private static void BuildInternal(BuildTarget buildTarget)
|
||||||
// 构建参数
|
// 构建参数
|
||||||
string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRoot();
|
string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRoot();
|
||||||
AssetBundleBuilder.BuildParameters buildParameters = new AssetBundleBuilder.BuildParameters();
|
AssetBundleBuilder.BuildParameters buildParameters = new AssetBundleBuilder.BuildParameters();
|
||||||
buildParameters.IsVerifyBuildingResult = true;
|
|
||||||
buildParameters.OutputRoot = defaultOutputRoot;
|
buildParameters.OutputRoot = defaultOutputRoot;
|
||||||
buildParameters.BuildTarget = buildTarget;
|
buildParameters.BuildTarget = buildTarget;
|
||||||
|
buildParameters.BuildMode = EBuildMode.ForceRebuild;
|
||||||
buildParameters.BuildVersion = buildVersion;
|
buildParameters.BuildVersion = buildVersion;
|
||||||
buildParameters.CompressOption = ECompressOption.LZ4;
|
buildParameters.BuildinTags = "buildin";
|
||||||
|
buildParameters.VerifyBuildingResult = true;
|
||||||
|
buildParameters.EnableAddressable = false;
|
||||||
buildParameters.AppendFileExtension = false;
|
buildParameters.AppendFileExtension = false;
|
||||||
buildParameters.EncryptionServices = new GameEncryption();
|
buildParameters.EncryptionServices = new GameEncryption();
|
||||||
buildParameters.IsForceRebuild = true;
|
buildParameters.CompressOption = ECompressOption.LZ4;
|
||||||
buildParameters.BuildinTags = "buildin";
|
|
||||||
|
|
||||||
// 执行构建
|
// 执行构建
|
||||||
AssetBundleBuilder builder = new AssetBundleBuilder();
|
AssetBundleBuilder builder = new AssetBundleBuilder();
|
||||||
builder.Run(buildParameters);
|
builder.Run(buildParameters);
|
||||||
|
|
||||||
// 构建完成
|
|
||||||
Debug.Log("构建完成");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从构建命令里获取参数
|
// 从构建命令里获取参数
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,11 @@
|
||||||
|
|
||||||
**注意**:该工具仅支持Unity2019+
|
**注意**:该工具仅支持Unity2019+
|
||||||
|
|
||||||
#### 着色器收集
|
#### 公共设置
|
||||||
|
|
||||||
|
- Enable Addressable
|
||||||
|
|
||||||
|
启用可寻址资源定位系统。
|
||||||
|
|
||||||
- Auto Collect Shaders
|
- 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**
|
- **PackRule**
|
||||||
|
|
||||||
打包规则,规则可以自定义扩展。下面是内置的打包规则:
|
打包规则,规则可以自定义扩展。下面是内置规则:
|
||||||
|
|
||||||
- PackSeparately 以文件路径作为资源包名,每个资源文件单独打包。
|
- PackSeparately 以文件路径作为资源包名,每个资源文件单独打包。
|
||||||
- PackDirectory 以父类文件夹路径作为资源包名,打进一个资源包。
|
- PackDirectory 以父类文件夹路径作为资源包名,文件夹下所有文件打进一个资源包。
|
||||||
- PackCollector 以收集器路径作为资源包名,打进一个资源包。
|
- PackTopDirectory 以收集器路径下顶级文件夹为资源包名,文件夹下所有文件打进一个资源包。
|
||||||
- PackGrouper 以分组名称作为资源包名,打进一个资源包。
|
- PackCollector 以收集器路径作为资源包名,收集的所有文件打进一个资源包。
|
||||||
|
- PackGrouper 以分组名称作为资源包名,收集的所有文件打进一个资源包。
|
||||||
- PackRawFile 目录下的资源文件会被处理为原生资源包。
|
- PackRawFile 目录下的资源文件会被处理为原生资源包。
|
||||||
|
|
||||||
````c#
|
````c#
|
||||||
//自定义扩展范例
|
//自定义扩展范例
|
||||||
public class PackDirectory : IPackRule
|
public class PackDirectory : IPackRule
|
||||||
{
|
{
|
||||||
string IPackRule.GetBundleName(PackRuleData data)
|
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**
|
- **FilterRule**
|
||||||
|
|
||||||
过滤规则,规则可以自定义扩展。下面是内置的过滤规则:
|
过滤规则,规则可以自定义扩展。下面是内置规则:
|
||||||
|
|
||||||
- CollectAll 收集目录下的所有资源文件
|
- CollectAll 收集目录下的所有资源文件
|
||||||
|
|
||||||
- CollectScene 只收集目录下的场景文件
|
- CollectScene 只收集目录下的场景文件
|
||||||
|
|
||||||
- CollectPrefab 只收集目录下的预制体文件
|
- CollectPrefab 只收集目录下的预制体文件
|
||||||
|
|
||||||
- CollectSprite 只收集目录下的精灵类型的文件
|
- CollectSprite 只收集目录下的精灵类型的文件
|
||||||
|
|
||||||
````c#
|
````c#
|
||||||
//自定义扩展范例
|
//自定义扩展范例
|
||||||
public class CollectScene : IFilterRule
|
public class CollectScene : IFilterRule
|
||||||
{
|
{
|
||||||
public bool IsCollectAsset(FilterRuleData data)
|
public bool IsCollectAsset(FilterRuleData data)
|
||||||
{
|
{
|
||||||
return Path.GetExtension(data.AssetPath) == ".unity";
|
return Path.GetExtension(data.AssetPath) == ".unity";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
````
|
````
|
||||||
|
|
||||||
- **NotWriteToAssetList**
|
|
||||||
|
|
||||||
资源对象不写入资源列表
|
|
||||||
|
|
||||||
- **AssetTags**
|
- **AssetTags**
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -56,16 +56,24 @@ private IEnumerator UpdatePatchManifest()
|
||||||
|
|
||||||
补丁包下载接口:
|
补丁包下载接口:
|
||||||
|
|
||||||
- YooAssets.CreatePatchDownloader(string[] tags) 根据资源标签列表下载相关资源包文件
|
- YooAssets.CreatePatchDownloader(int downloadingMaxNumber, int failedTryAgain)
|
||||||
- YooAssets.CreateBundleDownloader(string[] locations) 根据资源对象列表下载相关资源包文件
|
|
||||||
|
用于下载更新当前资源版本所有的资源包文件。
|
||||||
|
|
||||||
|
- YooAssets.CreatePatchDownloader(string[] tags, int downloadingMaxNumber, int failedTryAgain)
|
||||||
|
|
||||||
|
用于下载更新资源标签指定的资源包文件。
|
||||||
|
|
||||||
|
- YooAssets.CreateBundleDownloader(string[] locations, int downloadingMaxNumber, int failedTryAgain)
|
||||||
|
|
||||||
|
用于下载更新指定的资源列表依赖的资源包文件。
|
||||||
|
|
||||||
````c#
|
````c#
|
||||||
IEnumerator Download()
|
IEnumerator Download()
|
||||||
{
|
{
|
||||||
string[] tags = { "buildin", "config" };
|
|
||||||
int downloadingMaxNum = 10;
|
int downloadingMaxNum = 10;
|
||||||
int failedTryAgain = 3;
|
int failedTryAgain = 3;
|
||||||
DownloaderOperation downloader = YooAssets.CreatePatchDownloader(tags, downloadingMaxNum, failedTryAgain);
|
DownloaderOperation downloader = YooAssets.CreatePatchDownloader(downloadingMaxNum, failedTryAgain);
|
||||||
|
|
||||||
//没有需要下载的资源
|
//没有需要下载的资源
|
||||||
if (downloader.TotalDownloadCount == 0)
|
if (downloader.TotalDownloadCount == 0)
|
||||||
|
|
|
@ -11,6 +11,12 @@
|
||||||
|
|
||||||
统一约定:location为资源的定位地址,也是加载资源对象的唯一标识符。
|
统一约定:location为资源的定位地址,也是加载资源对象的唯一标识符。
|
||||||
|
|
||||||
|
DefaultLocationServices 默认资源定位服务,location代表的是资源对象的相对路径。
|
||||||
|
|
||||||
|
AddressLocationServices 可寻址资源定位服务,location代表的是资源对象可寻址地址。
|
||||||
|
|
||||||
|
**注意**:以下范例执行环境是在DefaultLocationServices下。
|
||||||
|
|
||||||
**加载路径的匹配方式**
|
**加载路径的匹配方式**
|
||||||
|
|
||||||
````C#
|
````C#
|
||||||
|
@ -68,6 +74,10 @@ IEnumerator Start()
|
||||||
|
|
||||||
**资源释放范例**
|
**资源释放范例**
|
||||||
|
|
||||||
|
可以在切换场景之后调用资源释放方法或者写定时器间隔时间去释放。
|
||||||
|
|
||||||
|
注意:只有调用资源释放方法,资源对象才会在内存里被移除。
|
||||||
|
|
||||||
````c#
|
````c#
|
||||||
private void UnloadAssets()
|
private void UnloadAssets()
|
||||||
{
|
{
|
||||||
|
@ -124,8 +134,8 @@ IEnumerator Start()
|
||||||
IEnumerator Start()
|
IEnumerator Start()
|
||||||
{
|
{
|
||||||
string location = "wwise/init.bnk";
|
string location = "wwise/init.bnk";
|
||||||
string savePath = $"{Application.persistentDataPath}/Audio/init.bnk";
|
string copyPath = $"{Application.persistentDataPath}/Audio/init.bnk";
|
||||||
RawFileOperation operation = YooAssets.LoadRawFileAsync(location, savePath);
|
RawFileOperation operation = YooAssets.LoadRawFileAsync(location, copyPath);
|
||||||
yield return operation;
|
yield return operation;
|
||||||
byte[] fileData = operation.GetFileData();
|
byte[] fileData = operation.GetFileData();
|
||||||
string fileText = operation.GetFileText();
|
string fileText = operation.GetFileText();
|
||||||
|
|
Loading…
Reference in New Issue