pull/455/head
何冠峰 2025-01-02 10:46:52 +08:00
parent fe75491024
commit 499fb8239e
3 changed files with 26 additions and 10 deletions

View File

@ -69,12 +69,12 @@ namespace YooAsset
#region 创建默认的文件系统类
/// <summary>
/// 创建默认的编辑器文件系统参数
/// <param name="simulateBuildResult">模拟构建结果</param>
/// <param name="packageRoot">文件系统的根目录</param>
/// </summary>
public static FileSystemParameters CreateDefaultEditorFileSystemParameters(EditorSimulateBuildResult simulateBuildResult)
public static FileSystemParameters CreateDefaultEditorFileSystemParameters(string packageRoot)
{
string fileSystemClass = typeof(DefaultEditorFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, simulateBuildResult.PackageRootDirectory);
var fileSystemParams = new FileSystemParameters(fileSystemClass, packageRoot);
return fileSystemParams;
}
@ -82,7 +82,7 @@ namespace YooAsset
/// 创建默认的内置文件系统参数
/// </summary>
/// <param name="decryptionServices">加密文件解密服务类</param>
/// <param name="packageRoot">内置文件的根路径</param>
/// <param name="packageRoot">文件系统的根目录</param>
public static FileSystemParameters CreateDefaultBuildinFileSystemParameters(IDecryptionServices decryptionServices = null, string packageRoot = null)
{
string fileSystemClass = typeof(DefaultBuildinFileSystem).FullName;

View File

@ -12,5 +12,22 @@ namespace YooAsset
/// 模拟构建管线名称
/// </summary>
public string BuildPipelineName = "EditorSimulateBuildPipeline";
/// <summary>
/// 模拟构建类所属程序集名称
/// </summary>
public string InvokeAssmeblyName = "YooAsset.Editor";
/// <summary>
/// 模拟构建执行的类名全称
/// 注意:类名必须包含命名空间!
/// </summary>
public string InvokeClassFullName = "YooAsset.Editor.AssetBundleSimulateBuilder";
/// <summary>
/// 模拟构建执行的方法名称
/// 注意:执行方法必须满足 BindingFlags.Public | BindingFlags.Static
/// </summary>
public string InvokeMethodName = "SimulateBuild";
}
}

View File

@ -5,17 +5,16 @@ namespace YooAsset
{
public static class EditorSimulateModeHelper
{
private static System.Type _classType;
/// <summary>
/// 编辑器下模拟构建清单
/// </summary>
public static EditorSimulateBuildResult SimulateBuild(EditorSimulateBuildParam buildParam)
{
if (_classType == null)
_classType = Assembly.Load("YooAsset.Editor").GetType("YooAsset.Editor.AssetBundleSimulateBuilder");
return (EditorSimulateBuildResult)InvokePublicStaticMethod(_classType, "SimulateBuild", buildParam);
var assemblyName = buildParam.InvokeAssmeblyName;
var className = buildParam.InvokeClassFullName;
var methodName = buildParam.InvokeMethodName;
var classType = Assembly.Load(assemblyName).GetType(className);
return (EditorSimulateBuildResult)InvokePublicStaticMethod(classType, methodName, buildParam);
}
private static object InvokePublicStaticMethod(System.Type type, string method, params object[] parameters)