using System; using System.Diagnostics; using System.Reflection; using UnityEngineInternal; namespace UnityEngine.Events { // Token: 0x02000478 RID: 1144 internal class InvokableCall : BaseInvokableCall { // Token: 0x0600398E RID: 14734 RVA: 0x000640F8 File Offset: 0x000622F8 public InvokableCall(object target, MethodInfo theFunction) : base(target, theFunction) { this.Delegate = (UnityAction)theFunction.CreateDelegate(typeof(UnityAction), target); } // Token: 0x0600398F RID: 14735 RVA: 0x00064120 File Offset: 0x00062320 public InvokableCall(UnityAction action) { this.Delegate += action; } // Token: 0x1400002E RID: 46 // (add) Token: 0x06003990 RID: 14736 RVA: 0x00064130 File Offset: 0x00062330 // (remove) Token: 0x06003991 RID: 14737 RVA: 0x00064168 File Offset: 0x00062368 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] protected event UnityAction Delegate; // Token: 0x06003992 RID: 14738 RVA: 0x000641A0 File Offset: 0x000623A0 public override void Invoke(object[] args) { if (args.Length != 2) { throw new ArgumentException("Passed argument 'args' is invalid size. Expected size is 1"); } BaseInvokableCall.ThrowOnInvalidArg(args[0]); BaseInvokableCall.ThrowOnInvalidArg(args[1]); if (BaseInvokableCall.AllowInvoke(this.Delegate)) { this.Delegate((T1)((object)args[0]), (T2)((object)args[1])); } } // Token: 0x06003993 RID: 14739 RVA: 0x00064200 File Offset: 0x00062400 public override bool Find(object targetObj, MethodInfo method) { return this.Delegate.Target == targetObj && this.Delegate.GetMethodInfo().Equals(method); } } }