mirror of https://github.com/tuyoogame/YooAsset
parent
2a8761c29e
commit
bc7c6c1f33
|
@ -8,7 +8,7 @@ namespace YooAsset.Editor
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模拟构建
|
/// 模拟构建
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static EditorSimulateBuildResult SimulateBuild(EditorSimulateBuildParam buildParam)
|
public static PackageInvokeBuildResult SimulateBuild(PackageInvokeBuildParam buildParam)
|
||||||
{
|
{
|
||||||
string packageName = buildParam.PackageName;
|
string packageName = buildParam.PackageName;
|
||||||
string buildPipelineName = buildParam.BuildPipelineName;
|
string buildPipelineName = buildParam.BuildPipelineName;
|
||||||
|
@ -31,7 +31,7 @@ namespace YooAsset.Editor
|
||||||
BuildResult buildResult = pipeline.Run(buildParameters, false);
|
BuildResult buildResult = pipeline.Run(buildParameters, false);
|
||||||
if (buildResult.Success)
|
if (buildResult.Success)
|
||||||
{
|
{
|
||||||
var reulst = new EditorSimulateBuildResult();
|
var reulst = new PackageInvokeBuildResult();
|
||||||
reulst.PackageRootDirectory = buildResult.OutputPackageDirectory;
|
reulst.PackageRootDirectory = buildResult.OutputPackageDirectory;
|
||||||
return reulst;
|
return reulst;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c4881e782cbf0d4aa6f8309efd22865
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,38 @@
|
||||||
|
|
||||||
|
namespace YooAsset
|
||||||
|
{
|
||||||
|
public class PackageInvokeBuildParam
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 包裹名称
|
||||||
|
/// </summary>
|
||||||
|
public readonly string PackageName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构建管线名称
|
||||||
|
/// </summary>
|
||||||
|
public string BuildPipelineName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构建类所属程序集名称
|
||||||
|
/// </summary>
|
||||||
|
public string InvokeAssmeblyName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构建执行的类名全称
|
||||||
|
/// 注意:类名必须包含命名空间!
|
||||||
|
/// </summary>
|
||||||
|
public string InvokeClassFullName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构建执行的方法名称
|
||||||
|
/// 注意:执行方法必须满足 BindingFlags.Public | BindingFlags.Static
|
||||||
|
/// </summary>
|
||||||
|
public string InvokeMethodName;
|
||||||
|
|
||||||
|
public PackageInvokeBuildParam(string packageName)
|
||||||
|
{
|
||||||
|
PackageName = packageName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
namespace YooAsset
|
namespace YooAsset
|
||||||
{
|
{
|
||||||
public class EditorSimulateBuildResult
|
public class PackageInvokeBuildResult
|
||||||
{
|
{
|
||||||
public string PackageRootDirectory;
|
public string PackageRootDirectory;
|
||||||
}
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace YooAsset
|
||||||
|
{
|
||||||
|
public static class PakcageInvokeBuilder
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 调用Editro类来执行构建资源包任务
|
||||||
|
/// </summary>
|
||||||
|
public static PackageInvokeBuildResult InvokeBuilder(PackageInvokeBuildParam buildParam)
|
||||||
|
{
|
||||||
|
var assemblyName = buildParam.InvokeAssmeblyName;
|
||||||
|
var className = buildParam.InvokeClassFullName;
|
||||||
|
var methodName = buildParam.InvokeMethodName;
|
||||||
|
var classType = Assembly.Load(assemblyName).GetType(className);
|
||||||
|
return (PackageInvokeBuildResult)InvokePublicStaticMethod(classType, methodName, buildParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static object InvokePublicStaticMethod(System.Type type, string method, params object[] parameters)
|
||||||
|
{
|
||||||
|
var methodInfo = type.GetMethod(method, BindingFlags.Public | BindingFlags.Static);
|
||||||
|
if (methodInfo == null)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogError($"{type.FullName} not found method : {method}");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return methodInfo.Invoke(null, parameters);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
namespace YooAsset
|
||||||
|
{
|
||||||
|
public static class PakcageInvokeBuilder
|
||||||
|
{
|
||||||
|
public static PackageInvokeBuildResult InvokeBuilder(PackageInvokeBuildParam buildParam)
|
||||||
|
{
|
||||||
|
throw new System.Exception("Only support in unity editor platform !");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5b09fe4b7aa2d2143bc538976541b039
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -1,38 +0,0 @@
|
||||||
|
|
||||||
namespace YooAsset
|
|
||||||
{
|
|
||||||
public class EditorSimulateBuildParam
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 包裹名称
|
|
||||||
/// </summary>
|
|
||||||
public readonly string PackageName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 模拟构建管线名称
|
|
||||||
/// </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";
|
|
||||||
|
|
||||||
public EditorSimulateBuildParam(string packageName)
|
|
||||||
{
|
|
||||||
PackageName = packageName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,43 +1,16 @@
|
||||||
#if UNITY_EDITOR
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace YooAsset
|
namespace YooAsset
|
||||||
{
|
{
|
||||||
public static class EditorSimulateModeHelper
|
public class EditorSimulateModeHelper
|
||||||
{
|
{
|
||||||
/// <summary>
|
public static PackageInvokeBuildResult SimulateBuild(string packageName)
|
||||||
/// 编辑器下模拟构建清单
|
|
||||||
/// </summary>
|
|
||||||
public static EditorSimulateBuildResult SimulateBuild(EditorSimulateBuildParam buildParam)
|
|
||||||
{
|
{
|
||||||
var assemblyName = buildParam.InvokeAssmeblyName;
|
var buildParam = new PackageInvokeBuildParam(packageName);
|
||||||
var className = buildParam.InvokeClassFullName;
|
buildParam.BuildPipelineName = "EditorSimulateBuildPipeline";
|
||||||
var methodName = buildParam.InvokeMethodName;
|
buildParam.InvokeAssmeblyName = "YooAsset.Editor";
|
||||||
var classType = Assembly.Load(assemblyName).GetType(className);
|
buildParam.InvokeClassFullName = "YooAsset.Editor.AssetBundleSimulateBuilder";
|
||||||
return (EditorSimulateBuildResult)InvokePublicStaticMethod(classType, methodName, buildParam);
|
buildParam.InvokeMethodName = "SimulateBuild";
|
||||||
}
|
return PakcageInvokeBuilder.InvokeBuilder(buildParam);
|
||||||
|
|
||||||
private static object InvokePublicStaticMethod(System.Type type, string method, params object[] parameters)
|
|
||||||
{
|
|
||||||
var methodInfo = type.GetMethod(method, BindingFlags.Public | BindingFlags.Static);
|
|
||||||
if (methodInfo == null)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError($"{type.FullName} not found method : {method}");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return methodInfo.Invoke(null, parameters);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
namespace YooAsset
|
|
||||||
{
|
|
||||||
public static class EditorSimulateModeHelper
|
|
||||||
{
|
|
||||||
public static EditorSimulateBuildResult SimulateBuild(EditorSimulateBuildParam buildParam)
|
|
||||||
{
|
|
||||||
throw new System.Exception("Only support in unity editor !");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 5b09fe4b7aa2d2143bc538976541b039
|
guid: b0a23f529c8bf4943a371ee6b360e698
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
|
|
Loading…
Reference in New Issue