【m】框架大更新

This commit is contained in:
2025-10-31 11:18:23 +08:00
parent ae6e7c804b
commit 8e1d52ddbf
1883 changed files with 213934 additions and 640 deletions
@@ -0,0 +1,43 @@
namespace YooAsset
{
public class PackageInvokeBuildParam
{
/// <summary>
/// 包裹名称
/// </summary>
public readonly string PackageName;
/// <summary>
/// 构建管线名称
/// </summary>
public string BuildPipelineName;
/// <summary>
/// 用户数据
/// </summary>
public object BuildUserData;
/// <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;
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 367d663e27c0283439edd4816ac7762f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
namespace YooAsset
{
public class PackageInvokeBuildResult
{
public string PackageRootDirectory;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cd4c5ce81c4f1214b933e4c3aa9effe9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,43 @@
#if UNITY_EDITOR
using System.Reflection;
namespace YooAsset
{
public static class PackageInvokeBuilder
{
/// <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 PackageInvokeBuilder
{
public static PackageInvokeBuildResult InvokeBuilder(PackageInvokeBuildParam buildParam)
{
throw new System.Exception("Only support in unity editor platform !");
}
}
}
#endif
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1d745821141e52e47985bac40ec1940c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: