public State <T> AddState(T id, OnAsyncEnterCallback <T> onEnterCB, OnSyncExitCallback <T> onExitCB)
        {
            UniTask OnExit(T to)
            {
                onExitCB(to); return(UniTask.CompletedTask);
            }

            State <T> state = new State <T>(id, onEnterCB, OnExit);

            AddState(id, state);
            return(state);
        }
        public IState <T> AddStateWithCallbacks(T id, OnSyncEnterCallback <T> onEnterCB, OnSyncExitCallback <T> onExitCB)
        {
            UniTask OnEnter(T from)
            {
                onEnterCB(from); return(UniTask.CompletedTask);
            }

            UniTask OnExit(T to)
            {
                onExitCB(to); return(UniTask.CompletedTask);
            }

            State <T> state = new State <T>(id, OnEnter, OnExit);

            AddState(id, state);
            return(state);
        }
 public IState <T> AddState(T id, OnSyncEnterCallback <T> onEnterCB, OnSyncExitCallback <T> onExitCB)
 {
     return(AddStateWithCallbacks(id, onEnterCB, onExitCB));
 }