using UnityEngine; using System.Collections; using InfallibleCode; [System.Serializable] public class FunctionReference: MonoBehaviour { [SerializeField] EventDelegateTrigger eventDelegateTriggerAssignMethod; [SerializeField] private EventTrigger eventTrigger; public void SubscribeMethodToEventDelegate() { eventDelegateTriggerAssignMethod.onEvent += () => eventTrigger.Invoke(); print("Event delegate method subscribed: " + eventTrigger.gameObject.name); } public void UnsubscribeMethodToEventDelegate() { //StartCoroutine(UnsabscribeAfterSomeSecs()); eventDelegateTriggerAssignMethod.onEvent -= () => eventTrigger.Invoke(); print("Event delegate method unsabscribed"); } IEnumerator UnsabscribeAfterSomeSecs() { yield return new WaitForSeconds(0.1f); eventDelegateTriggerAssignMethod.onEvent -= () => eventTrigger.Invoke(); print("Event delegate method unsabscribed"); } }