[System.Serializable] public class SerializableEvent : SerializableEventBase { public void Invoke() { if (invokable == null) Cache(); if (_dynamic) { InvokableEvent call = invokable as InvokableEvent; call.Invoke(); } else { invokable.Invoke(Args); } } protected override void Cache() { if (_target == null || string.IsNullOrEmpty(_methodName)) { invokable = new InvokableEvent(null, null); } else { if (_dynamic) { invokable = new InvokableEvent(target, methodName); } else { invokable = GetPersistentMethod(); } } } } public abstract class SerializableEvent : SerializableEventBase { public void Invoke(T0 arg0) { if (invokable == null) Cache(); if (_dynamic) { InvokableEvent call = invokable as InvokableEvent; call.Invoke(arg0); } else { invokable.Invoke(Args); } } protected override void Cache() { if (_target == null || string.IsNullOrEmpty(_methodName)) { invokable = new InvokableEvent(null, null); } else { if (_dynamic) { invokable = new InvokableEvent(target, methodName); } else { invokable = GetPersistentMethod(); } } } } public abstract class SerializableEvent : SerializableEventBase { public void Invoke(T0 arg0, T1 arg1) { if (invokable == null) Cache(); if (_dynamic) { InvokableEvent call = invokable as InvokableEvent; call.Invoke(arg0, arg1); } else { invokable.Invoke(Args); } } protected override void Cache() { if (_target == null || string.IsNullOrEmpty(_methodName)) { invokable = new InvokableEvent(null, null); } else { if (_dynamic) { invokable = new InvokableEvent(target, methodName); } else { invokable = GetPersistentMethod(); } } } } public abstract class SerializableEvent : SerializableEventBase { public void Invoke(T0 arg0, T1 arg1, T2 arg2) { if (invokable == null) Cache(); if (_dynamic) { InvokableEvent call = invokable as InvokableEvent; call.Invoke(arg0, arg1, arg2); } else { invokable.Invoke(Args); } } protected override void Cache() { if (_target == null || string.IsNullOrEmpty(_methodName)) { invokable = new InvokableEvent(null, null); } else { if (_dynamic) { invokable = new InvokableEvent(target, methodName); } else { invokable = GetPersistentMethod(); } } } } public abstract class SerializableEvent : SerializableEventBase { public void Invoke(T0 arg0, T1 arg1, T2 arg2, T3 arg3) { if (invokable == null) Cache(); if (_dynamic) { InvokableEvent call = invokable as InvokableEvent; call.Invoke(arg0, arg1, arg2, arg3); } else { invokable.Invoke(Args); } } protected override void Cache() { if (_target == null || string.IsNullOrEmpty(_methodName)) { invokable = new InvokableEvent(null, null); } else { if (_dynamic) { invokable = new InvokableEvent(target, methodName); } else { invokable = GetPersistentMethod(); } } } }