public void RegisterPlayer(PlayerStateManager player) { Player playerComponent = player.GetComponent <Player>(); player.OnStateChange += (oldState, newState) => { onAnyPlayerEnterStateSubscribers_early[newState](playerComponent); onAnyPlayerExitStateSubscribers_early[oldState](playerComponent); onAnyPlayerEnterStateSubscribers[newState](playerComponent); onAnyPlayerExitStateSubscribers[oldState](playerComponent); }; }
public void RegisterPlayer(PlayerStateManager player) { Player playerComponent = player.GetComponent <Player>(); foreach (State state in (State[])System.Enum.GetValues(typeof(State))) { player.CallOnStateEnter( state, () => onAnyPlayerStartSubscribers[state](playerComponent)); player.CallOnStateExit( state, () => onAnyPlayerEndSubscribers[state](playerComponent)); player.CallOnAnyStateChange( (State start, State end) => onAnyChangeSubscribers(playerComponent, start, end)); } }