using System; using System.Diagnostics; using System.Reflection; using UnityEngineInternal; namespace UnityEngine.Events { // Token: 0x0200047A RID: 1146 internal class InvokableCall : BaseInvokableCall { // Token: 0x0600399A RID: 14746 RVA: 0x00064390 File Offset: 0x00062590 public InvokableCall(object target, MethodInfo theFunction) : base(target, theFunction) { this.Delegate = (UnityAction)theFunction.CreateDelegate(typeof(UnityAction), target); } // Token: 0x0600399B RID: 14747 RVA: 0x000643B8 File Offset: 0x000625B8 public InvokableCall(UnityAction 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 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(args[0]); BaseInvokableCall.ThrowOnInvalidArg(args[1]); BaseInvokableCall.ThrowOnInvalidArg(args[2]); BaseInvokableCall.ThrowOnInvalidArg(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); } } }