Added namespaces and fixed reflection method name bug

This commit is contained in:
Anton Zhernosek
2023-06-21 11:15:52 +02:00
parent 070c261c2f
commit c737bd9aeb
6 changed files with 198 additions and 192 deletions

View File

@@ -6,7 +6,7 @@ using System.Reflection;
using System.Text.RegularExpressions;
using UnityEditor;
namespace Utilities.SerializableData.SerializableFunc.UnityEditorUtilities
namespace UnityUtilities.SerializableDataHelpers.UnityEditorUtilities
{
public static class SerializedPropertyExtensions
{

View File

@@ -12,10 +12,10 @@ using UnityEngine;
using UnityEngine.UIElements;
using Utilities.Extensions.SystemExtensions;
using Utilities.Extensions.UIToolkit;
using Utilities.SerializableData.SerializableFunc.UnityEditorUtilities;
using UnityUtilities.SerializableDataHelpers
using Object = UnityEngine.Object;
namespace Utilities.SerializableData.SerializableFunc.UnityEditorDrawers
namespace UnityUtilities.SerializableDataHelpers.UnityEditorUtilities
{
[CustomPropertyDrawer(typeof(SerializableFuncBase<>), true)]
public class SerializableFuncBasePropertyDrawer : PropertyDrawer

View File

@@ -4,80 +4,83 @@ using System.Reflection;
using UnityEngine;
using Object = UnityEngine.Object;
[System.Serializable]
public abstract class SerializableFuncBase<TFuncType>
where TFuncType : Delegate
namespace UnityUtilities.SerializableDataHelpers
{
[SerializeField] protected Object targetObject;
[SerializeField] protected string methodName;
private TFuncType func;
private static BindingFlags SuitableMethodsFlags = BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance;
protected TFuncType GetReturnedFunc()
[System.Serializable]
public abstract class SerializableFuncBase<TFuncType>
where TFuncType : Delegate
{
if (func == null)
[SerializeField] protected Object targetObject;
[SerializeField] protected string methodName;
private TFuncType func;
private static BindingFlags SuitableMethodsFlags = BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance;
protected TFuncType GetReturnedFunc()
{
if (targetObject == null)
if (func == null)
{
throw new ArgumentNullException("Target Object is null!");
if (targetObject == null)
{
throw new ArgumentNullException("Target Object is null!");
}
if (string.IsNullOrWhiteSpace(methodName))
{
throw new ArgumentNullException("Target Method is null!");
}
Type funcType = typeof(TFuncType);
MethodInfo info = targetObject
.GetType()
.GetMethods(SuitableMethodsFlags)
.FirstOrDefault(x => IsTargetMethodInfo(x, funcType));
if (info == null)
{
throw new MissingMethodException($"Object \"{targetObject.name}\" is missing target method: {methodName}");
}
func = (TFuncType)Delegate.CreateDelegate(funcType, targetObject, methodName);
}
if (string.IsNullOrWhiteSpace(methodName))
{
throw new ArgumentNullException("Target Method is null!");
}
Type funcType = typeof(TFuncType);
MethodInfo info = targetObject
.GetType()
.GetMethods(SuitableMethodsFlags)
.FirstOrDefault(x => IsTargetMethodInfo(x, funcType));
if (info == null)
{
throw new MissingMethodException($"Object \"{targetObject.name}\" is missing target method: {methodName}");
}
func = (TFuncType)Delegate.CreateDelegate(funcType, targetObject, methodName);
return func;
}
return func;
}
#region Utility Functions
#region Utility Functions
private bool IsTargetMethodInfo(MethodInfo methodInfo, Type funcType)
{
if (string.Equals(methodInfo.Name, methodName, StringComparison.InvariantCulture)) return false;
Type[] typeArguments = funcType.GetGenericArguments();
if (methodInfo.ReturnType != typeArguments.Last()) return false;
ParameterInfo[] parameters = methodInfo.GetParameters();
if (parameters.Length != (typeArguments.Length - 1)) return false;
for (int i = 0; i < parameters.Length; i++)
private bool IsTargetMethodInfo(MethodInfo methodInfo, Type funcType)
{
Type argType = typeArguments[i];
ParameterInfo parameterInfo = parameters[i];
if (argType != parameterInfo.ParameterType) return false;
if (!string.Equals(methodInfo.Name, methodName, StringComparison.InvariantCulture)) return false;
Type[] typeArguments = funcType.GetGenericArguments();
if (methodInfo.ReturnType != typeArguments.Last()) return false;
ParameterInfo[] parameters = methodInfo.GetParameters();
if (parameters.Length != (typeArguments.Length - 1)) return false;
for (int i = 0; i < parameters.Length; i++)
{
Type argType = typeArguments[i];
ParameterInfo parameterInfo = parameters[i];
if (argType != parameterInfo.ParameterType) return false;
}
return true;
}
return true;
}
#endregion
#endregion
public static implicit operator TFuncType(SerializableFuncBase<TFuncType> func)
{
if (func == null) return null;
public static implicit operator TFuncType(SerializableFuncBase<TFuncType> func)
{
if (func == null) return null;
TFuncType result = func.GetReturnedFunc();
return result;
TFuncType result = func.GetReturnedFunc();
return result;
}
}
}

View File

@@ -1,175 +1,178 @@
using System;
[System.Serializable]
public class SerializableFunc<TReturn> : SerializableFuncBase<Func<TReturn>>
namespace UnityUtilities.SerializableDataHelpers
{
public TReturn Invoke()
using System;
[System.Serializable]
public class SerializableFunc<TReturn> : SerializableFuncBase<Func<TReturn>>
{
Func<TReturn> func = GetReturnedFunc();
return func();
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TReturn> : SerializableFuncBase<Func<TArg0, TReturn>>
{
public TReturn Invoke(TArg0 arg0)
{
Func<TArg0, TReturn> func = GetReturnedFunc();
return func(arg0);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1)
{
Func<TArg0, TArg1, TReturn> func = GetReturnedFunc();
return func(arg0, arg1);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2)
{
Func<TArg0, TArg1, TArg2, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3)
{
Func<TArg0, TArg1, TArg2, TArg3, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14, TArg15 arg15)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
public TReturn Invoke()
{
Func<TReturn> func = GetReturnedFunc();
return func();
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TReturn> : SerializableFuncBase<Func<TArg0, TReturn>>
{
public TReturn Invoke(TArg0 arg0)
{
Func<TArg0, TReturn> func = GetReturnedFunc();
return func(arg0);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1)
{
Func<TArg0, TArg1, TReturn> func = GetReturnedFunc();
return func(arg0, arg1);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2)
{
Func<TArg0, TArg1, TArg2, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3)
{
Func<TArg0, TArg1, TArg2, TArg3, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TReturn> : SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
}
}
[System.Serializable]
public class SerializableFunc<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TReturn> :
SerializableFuncBase<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TReturn>>
{
public TReturn Invoke(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14, TArg15 arg15)
{
Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TReturn> func = GetReturnedFunc();
return func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
}
}
}

View File

@@ -3,7 +3,7 @@
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using Utilities.SerializableData.SerializableFunc;
using UnityUtilities.SerializableDataHelpers;
public class SerializableFuncDebugger : MonoBehaviour
{

View File

@@ -1,7 +1,7 @@
{
"name": "com.antonzhernosek.serializablefunc",
"displayName": "SerializableFunc",
"version": "1.1.0",
"version": "1.1.1",
"unity": "2020.3",
"keywords": [
"unity",