mirror of https://github.com/tuyoogame/YooAsset
fix #462
parent
94ee2ba5c1
commit
f72814a51b
|
@ -58,7 +58,7 @@ namespace YooAsset.Editor
|
|||
|
||||
/// <summary>
|
||||
/// 使用资源依赖缓存数据库
|
||||
/// 说明:开启此项可以极大提高资源收集速度
|
||||
/// 说明:开启此项可以极大提高资源收集速度!
|
||||
/// </summary>
|
||||
public bool UseAssetDependencyDB = false;
|
||||
|
||||
|
@ -67,6 +67,12 @@ namespace YooAsset.Editor
|
|||
/// </summary>
|
||||
public bool EnableSharePackRule = false;
|
||||
|
||||
/// <summary>
|
||||
/// 对单独引用的共享资源进行独立打包
|
||||
/// 说明:关闭该选项单独引用的共享资源将会构建到引用它的资源包内!
|
||||
/// </summary>
|
||||
public bool SingleReferencedPackAlone = false;
|
||||
|
||||
/// <summary>
|
||||
/// 验证构建结果
|
||||
/// </summary>
|
||||
|
|
|
@ -109,15 +109,10 @@ namespace YooAsset.Editor
|
|||
{
|
||||
if (buildAssetInfo.HasBundleName() == false)
|
||||
{
|
||||
PackRuleResult packRuleResult = GetShareBundleName(buildAssetInfo);
|
||||
if (packRuleResult.IsValid())
|
||||
{
|
||||
string shareBundleName = packRuleResult.GetShareBundleName(collectResult.Command.PackageName, collectResult.Command.UniqueBundleName);
|
||||
buildAssetInfo.SetBundleName(shareBundleName);
|
||||
}
|
||||
ProcessingPackShareBundle(buildParameters, collectResult.Command, buildAssetInfo);
|
||||
}
|
||||
}
|
||||
PostProcessPackShareBundle();
|
||||
PostProcessPackShareBundle(buildParameters, collectResult.Command, allBuildAssetInfos);
|
||||
}
|
||||
|
||||
// 8. 记录关键信息
|
||||
|
@ -209,21 +204,38 @@ namespace YooAsset.Editor
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// 共享资源打包后置处理
|
||||
/// 共享资源打包机制
|
||||
/// </summary>
|
||||
protected virtual void PostProcessPackShareBundle()
|
||||
protected virtual void ProcessingPackShareBundle(BuildParameters buildParameters, CollectCommand command, BuildAssetInfo buildAssetInfo)
|
||||
{
|
||||
}
|
||||
PackRuleResult packRuleResult = GetShareBundleName(buildAssetInfo);
|
||||
if (packRuleResult.IsValid() == false)
|
||||
return;
|
||||
|
||||
/// <summary>
|
||||
/// 获取共享资源包名称
|
||||
/// </summary>
|
||||
protected virtual PackRuleResult GetShareBundleName(BuildAssetInfo buildAssetInfo)
|
||||
// 处理单个引用的共享资源
|
||||
if (buildAssetInfo.GetReferenceBundleCount() <= 1)
|
||||
{
|
||||
if (buildParameters.SingleReferencedPackAlone == false)
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置共享资源包名
|
||||
string shareBundleName = packRuleResult.GetShareBundleName(command.PackageName, command.UniqueBundleName);
|
||||
buildAssetInfo.SetBundleName(shareBundleName);
|
||||
}
|
||||
private PackRuleResult GetShareBundleName(BuildAssetInfo buildAssetInfo)
|
||||
{
|
||||
string bundleName = Path.GetDirectoryName(buildAssetInfo.AssetInfo.AssetPath);
|
||||
PackRuleResult result = new PackRuleResult(bundleName, DefaultPackRule.AssetBundleFileExtension);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 共享资源打包后置处理
|
||||
/// </summary>
|
||||
protected virtual void PostProcessPackShareBundle(BuildParameters buildParameters, CollectCommand command, Dictionary<string, BuildAssetInfo> allBuildAssetInfos)
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue