public void AddEnterEvent(T t, System.Action action, MonoBehaviourHasDestroyEvent mb) { AddEnterEvent(t, action); mb.onDestroy += () => { RemoveEnterEvent(t, action); }; }
public void AddEnterEventBeforeExit <C>(Action a, MonoBehaviourHasDestroyEvent mb) where C : StateNormal <C>, new() { processEnterEvent <C>(a, StateNormal <C> .GetExitEvents(), ee => ee.AddEnterEvent, mb); }
private void processEnterEvent <C>(Action a, IEnterEvents <T> ee, Func <IEnterEvents <T>, Action <T, Action, MonoBehaviourHasDestroyEvent> > processAction, MonoBehaviourHasDestroyEvent mb) { processAction(ee)(this as T, a, mb); }