Files
Dec2017-Script-Dump/UnityEngine/Events/InvokableCall.5.cs
T
2026-06-04 11:42:34 +02:00

54 lines
1.8 KiB
C#

using System;
using System.Diagnostics;
using System.Reflection;
using UnityEngineInternal;
namespace UnityEngine.Events
{
// Token: 0x0200047A RID: 1146
internal class InvokableCall<T1, T2, T3, T4> : BaseInvokableCall
{
// Token: 0x0600399A RID: 14746 RVA: 0x00064390 File Offset: 0x00062590
public InvokableCall(object target, MethodInfo theFunction)
: base(target, theFunction)
{
this.Delegate = (UnityAction<T1, T2, T3, T4>)theFunction.CreateDelegate(typeof(UnityAction<T1, T2, T3, T4>), target);
}
// Token: 0x0600399B RID: 14747 RVA: 0x000643B8 File Offset: 0x000625B8
public InvokableCall(UnityAction<T1, T2, T3, T4> action)
{
this.Delegate += action;
}
// Token: 0x14000030 RID: 48
// (add) Token: 0x0600399C RID: 14748 RVA: 0x000643C8 File Offset: 0x000625C8
// (remove) Token: 0x0600399D RID: 14749 RVA: 0x00064400 File Offset: 0x00062600
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
protected event UnityAction<T1, T2, T3, T4> Delegate;
// Token: 0x0600399E RID: 14750 RVA: 0x00064438 File Offset: 0x00062638
public override void Invoke(object[] args)
{
if (args.Length != 4)
{
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]);
BaseInvokableCall.ThrowOnInvalidArg<T4>(args[3]);
if (BaseInvokableCall.AllowInvoke(this.Delegate))
{
this.Delegate((T1)((object)args[0]), (T2)((object)args[1]), (T3)((object)args[2]), (T4)((object)args[3]));
}
}
// Token: 0x0600399F RID: 14751 RVA: 0x000644B8 File Offset: 0x000626B8
public override bool Find(object targetObj, MethodInfo method)
{
return this.Delegate.Target == targetObj && this.Delegate.GetMethodInfo().Equals(method);
}
}
}