示例#1
0
    void Start()
    {
        fsm = new FSMManager <Data>();

        StateBase <Data> defreezeState = new DefreezeState(fsm);

        defreezeState.AddTransition(Transition.PressFreeze, StateID.FreezeState);
        defreezeState.AddTransition(Transition.PressReset, StateID.ResetState);

        StateBase <Data> freezeState = new FreezeState(fsm);

        freezeState.AddTransition(Transition.PressDefreeze, StateID.DefreezeState);
        freezeState.AddTransition(Transition.PressReset, StateID.ResetState);

        StateBase <Data> resetState = new ResetState(fsm);

        resetState.AddTransition(Transition.PressDefreeze, StateID.DefreezeState);
        resetState.AddTransition(Transition.PressFreeze, StateID.FreezeState);


        fsm.AddState(defreezeState);
        fsm.AddState(freezeState);
        fsm.AddState(resetState);

        fsm.InitState(freezeState);
    }