diff --git a/Assets/YooAsset/Runtime/FileSystem/FileSystemParameters.cs b/Assets/YooAsset/Runtime/FileSystem/FileSystemParameters.cs index 80901585..15d88727 100644 --- a/Assets/YooAsset/Runtime/FileSystem/FileSystemParameters.cs +++ b/Assets/YooAsset/Runtime/FileSystem/FileSystemParameters.cs @@ -69,12 +69,12 @@ namespace YooAsset #region 创建默认的文件系统类 /// /// 创建默认的编辑器文件系统参数 - /// 模拟构建结果 + /// 文件系统的根目录 /// - 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 /// 创建默认的内置文件系统参数 /// /// 加密文件解密服务类 - /// 内置文件的根路径 + /// 文件系统的根目录 public static FileSystemParameters CreateDefaultBuildinFileSystemParameters(IDecryptionServices decryptionServices = null, string packageRoot = null) { string fileSystemClass = typeof(DefaultBuildinFileSystem).FullName; diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateBuildParam.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateBuildParam.cs index a946f3b4..fe2345d4 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateBuildParam.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateBuildParam.cs @@ -12,5 +12,22 @@ namespace YooAsset /// 模拟构建管线名称 /// public string BuildPipelineName = "EditorSimulateBuildPipeline"; + + /// + /// 模拟构建类所属程序集名称 + /// + public string InvokeAssmeblyName = "YooAsset.Editor"; + + /// + /// 模拟构建执行的类名全称 + /// 注意:类名必须包含命名空间! + /// + public string InvokeClassFullName = "YooAsset.Editor.AssetBundleSimulateBuilder"; + + /// + /// 模拟构建执行的方法名称 + /// 注意:执行方法必须满足 BindingFlags.Public | BindingFlags.Static + /// + public string InvokeMethodName = "SimulateBuild"; } } \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeHelper.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeHelper.cs index 160ba028..24234e56 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeHelper.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeHelper.cs @@ -5,17 +5,16 @@ namespace YooAsset { public static class EditorSimulateModeHelper { - private static System.Type _classType; - /// /// 编辑器下模拟构建清单 /// 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)