Skip to content

Commit

Permalink
[refactor][editor]:重构资源包构建回调相关代码
Browse files Browse the repository at this point in the history
  • Loading branch information
CatImmortal committed Mar 7, 2023
1 parent dc290f9 commit 6acaec6
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 14 deletions.
43 changes: 34 additions & 9 deletions Assets/CatAsset/Editor/BuildPipeline/BuildPipeline.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,12 @@ public static class BuildPipeline
/// </summary>
public static ReturnCode BuildBundles(BundleBuildConfigSO bundleBuildConfig, BuildTarget targetPlatform)
{
OnBundleBuildPreProcess(bundleBuildConfig,targetPlatform);
var preData = new BundleBuildPreProcessData
{
Config = bundleBuildConfig,
TargetPlatform = targetPlatform
};
OnBundleBuildPreProcess(preData);

string fullOutputPath = CreateFullOutputPath(bundleBuildConfig, targetPlatform);

Expand Down Expand Up @@ -67,7 +72,15 @@ public static ReturnCode BuildBundles(BundleBuildConfigSO bundleBuildConfig, Bui
Debug.LogError($"资源包构建未成功:{returnCode},耗时:{sw.Elapsed.Hours}{sw.Elapsed.Minutes}{sw.Elapsed.Seconds}秒");
}

OnBundleBuildPostProcess(bundleBuildConfig,targetPlatform,fullOutputPath,returnCode,result);
var postData = new BundleBuildPostProcessData
{
Config = bundleBuildConfig,
TargetPlatform = targetPlatform,
OutputFolder = fullOutputPath,
ReturnCode = returnCode,
Result = result,
};
OnBundleBuildPostProcess(postData);

return returnCode;
}
Expand All @@ -78,7 +91,12 @@ public static ReturnCode BuildBundles(BundleBuildConfigSO bundleBuildConfig, Bui
public static ReturnCode BuildRawBundles(BundleBuildConfigSO bundleBuildConfig,
BuildTarget targetPlatform)
{
OnBundleBuildPreProcess(bundleBuildConfig,targetPlatform);
var preData = new BundleBuildPreProcessData
{
Config = bundleBuildConfig,
TargetPlatform = targetPlatform
};
OnBundleBuildPreProcess(preData);

string fullOutputPath = CreateFullOutputPath(bundleBuildConfig, targetPlatform);

Expand Down Expand Up @@ -121,33 +139,40 @@ public static ReturnCode BuildRawBundles(BundleBuildConfigSO bundleBuildConfig,
Debug.LogError($"原生资源包构建未成功:{returnCode},耗时:{sw.Elapsed.Hours}{sw.Elapsed.Minutes}{sw.Elapsed.Seconds}秒");
}

OnBundleBuildPostProcess(bundleBuildConfig,targetPlatform,fullOutputPath,returnCode,null);
var postData = new BundleBuildPostProcessData
{
Config = bundleBuildConfig,
TargetPlatform = targetPlatform,
OutputFolder = fullOutputPath,
ReturnCode = returnCode,
Result = null,
};
OnBundleBuildPostProcess(postData);

return returnCode;
}

/// <summary>
/// 构建资源包前调用
/// </summary>
private static void OnBundleBuildPreProcess(BundleBuildConfigSO bundleBuildConfig, BuildTarget targetPlatform)
private static void OnBundleBuildPreProcess(BundleBuildPreProcessData data)
{
List<IBundleBuildPreProcessor> objs = EditorUtil.GetAssignableTypeObjects<IBundleBuildPreProcessor>();
foreach (var obj in objs)
{
obj.OnBundleBuildPreProcess(bundleBuildConfig,targetPlatform);
obj.OnBundleBuildPreProcess(data);
}
}

/// <summary>
/// 构建资源包后调用
/// </summary>
private static void OnBundleBuildPostProcess(BundleBuildConfigSO bundleBuildConfig, BuildTarget targetPlatform,string outputFolder,
ReturnCode returnCode, IBundleBuildResults result)
private static void OnBundleBuildPostProcess(BundleBuildPostProcessData data)
{
List<IBundleBuildPostProcessor> objs = EditorUtil.GetAssignableTypeObjects<IBundleBuildPostProcessor>();
foreach (var obj in objs)
{
obj.OnBundleBuildPostProcess(bundleBuildConfig,targetPlatform,outputFolder,returnCode,result);
obj.OnBundleBuildPostProcess(data);
}
}

Expand Down
37 changes: 37 additions & 0 deletions Assets/CatAsset/Editor/BuildPipeline/BundleBuildPostProcessData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using UnityEditor;
using UnityEditor.Build.Pipeline;
using UnityEditor.Build.Pipeline.Interfaces;

namespace CatAsset.Editor
{
/// <summary>
/// 资源包构建后处理数据
/// </summary>
public class BundleBuildPostProcessData
{
/// <summary>
/// 构建配置
/// </summary>
public BundleBuildConfigSO Config;

/// <summary>
/// 目标平台
/// </summary>
public BuildTarget TargetPlatform;

/// <summary>
/// 输出文件夹
/// </summary>
public string OutputFolder;

/// <summary>
/// 返回码
/// </summary>
public ReturnCode ReturnCode;

/// <summary>
/// 资源包构建结果
/// </summary>
public IBundleBuildResults Result;
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions Assets/CatAsset/Editor/BuildPipeline/BundleBuildPreProcessData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using UnityEditor;

namespace CatAsset.Editor
{
/// <summary>
/// 资源包构建预处理数据
/// </summary>
public class BundleBuildPreProcessData
{
/// <summary>
/// 构建配置
/// </summary>
public BundleBuildConfigSO Config;

/// <summary>
/// 目标平台
/// </summary>
public BuildTarget TargetPlatform;
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
namespace CatAsset.Editor
{
/// <summary>
/// 资源包构建后的处理回调接口
/// 资源包构建后的后处理回调接口
/// </summary>
public interface IBundleBuildPostProcessor
{
/// <summary>
/// 构建资源包后调用
/// </summary>
void OnBundleBuildPostProcess(BundleBuildConfigSO bundleBuildConfig, BuildTarget targetPlatform,string outputFolder,
ReturnCode returnCode, IBundleBuildResults result);
void OnBundleBuildPostProcess(BundleBuildPostProcessData data);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
namespace CatAsset.Editor
{
/// <summary>
/// 资源包构建前的处理回调接口
/// 资源包构建前的预处理回调接口
/// </summary>
public interface IBundleBuildPreProcessor
{
/// <summary>
/// 构建资源包前调用
/// </summary>
void OnBundleBuildPreProcess(BundleBuildConfigSO bundleBuildConfig, BuildTarget targetPlatform);
void OnBundleBuildPreProcess(BundleBuildPreProcessData data);
}
}

0 comments on commit 6acaec6

Please sign in to comment.