示例#1
0
    //Finite State Machine Setup
    public void SetupFSM()
    {
        FollowPathState followState = new FollowPathState();

        followState.SetAgentHandler(this);
        followState.AddTransitionToState(fsmTransition.ToChase, fsmStateID.ChasePlayer);
        followState.AddTransitionToState(fsmTransition.ToAttack, fsmStateID.AttackPlayer);

        AttackState attackState = new AttackState();

        attackState.AddTransitionToState(fsmTransition.ToLostPlayer, fsmStateID.FollowPath);
        attackState.AddTransitionToState(fsmTransition.ToChase, fsmStateID.ChasePlayer);

        ChasePlayerState chaseState = new ChasePlayerState();

        chaseState.AddTransitionToState(fsmTransition.ToLostPlayer, fsmStateID.FollowPath);
        chaseState.AddTransitionToState(fsmTransition.ToAttack, fsmStateID.AttackPlayer);

        mBasicAgentFSM = new FiniteStateMachine();
        mBasicAgentFSM.AddState(attackState);
        mBasicAgentFSM.AddState(followState);
        mBasicAgentFSM.AddState(chaseState);
    }