#if UNITY_EDITOR using System.Reflection; namespace YooAsset { public static class PakcageInvokeBuilder { /// /// 调用Editro类来执行构建资源包任务 /// 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