//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); }