using System; using System.Diagnostics; using System.Reflection; using UnityEngineInternal; namespace UnityEngine.Events { // Token: 0x02000479 RID: 1145 internal class InvokableCall : BaseInvokableCall { // Token: 0x06003994 RID: 14740 RVA: 0x0006423C File Offset: 0x0006243C public InvokableCall(object target, MethodInfo theFunction) : base(target, theFunction) { this.Delegate = (UnityAction)theFunction.CreateDelegate(typeof(UnityAction), target); } // Token: 0x06003995 RID: 14741 RVA: 0x00064264 File Offset: 0x00062464 public InvokableCall(UnityAction 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 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(args[0]); BaseInvokableCall.ThrowOnInvalidArg(args[1]); BaseInvokableCall.ThrowOnInvalidArg(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); } } }