53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Reflection;
|
|
using UnityEngineInternal;
|
|
|
|
namespace UnityEngine.Events
|
|
{
|
|
// Token: 0x02000479 RID: 1145
|
|
internal class InvokableCall<T1, T2, T3> : BaseInvokableCall
|
|
{
|
|
// Token: 0x06003994 RID: 14740 RVA: 0x0006423C File Offset: 0x0006243C
|
|
public InvokableCall(object target, MethodInfo theFunction)
|
|
: base(target, theFunction)
|
|
{
|
|
this.Delegate = (UnityAction<T1, T2, T3>)theFunction.CreateDelegate(typeof(UnityAction<T1, T2, T3>), target);
|
|
}
|
|
|
|
// Token: 0x06003995 RID: 14741 RVA: 0x00064264 File Offset: 0x00062464
|
|
public InvokableCall(UnityAction<T1, T2, T3> action)
|
|
{
|
|
this.Delegate += action;
|
|
}
|
|
|
|
// Token: 0x1400002F RID: 47
|
|
// (add) Token: 0x06003996 RID: 14742 RVA: 0x00064274 File Offset: 0x00062474
|
|
// (remove) Token: 0x06003997 RID: 14743 RVA: 0x000642AC File Offset: 0x000624AC
|
|
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
|
protected event UnityAction<T1, T2, T3> Delegate;
|
|
|
|
// Token: 0x06003998 RID: 14744 RVA: 0x000642E4 File Offset: 0x000624E4
|
|
public override void Invoke(object[] args)
|
|
{
|
|
if (args.Length != 3)
|
|
{
|
|
throw new ArgumentException("Passed argument 'args' is invalid size. Expected size is 1");
|
|
}
|
|
BaseInvokableCall.ThrowOnInvalidArg<T1>(args[0]);
|
|
BaseInvokableCall.ThrowOnInvalidArg<T2>(args[1]);
|
|
BaseInvokableCall.ThrowOnInvalidArg<T3>(args[2]);
|
|
if (BaseInvokableCall.AllowInvoke(this.Delegate))
|
|
{
|
|
this.Delegate((T1)((object)args[0]), (T2)((object)args[1]), (T3)((object)args[2]));
|
|
}
|
|
}
|
|
|
|
// Token: 0x06003999 RID: 14745 RVA: 0x00064354 File Offset: 0x00062554
|
|
public override bool Find(object targetObj, MethodInfo method)
|
|
{
|
|
return this.Delegate.Target == targetObj && this.Delegate.GetMethodInfo().Equals(method);
|
|
}
|
|
}
|
|
}
|