private void InitFSMSystem() { fsm = new FsmSystem(); SeekTarget seekTarget = new SeekTarget(this, fsm, anim); seekTarget.AddTransition(Transition.MoveToTarget, StateID.MoveToTarget); seekTarget.AddTransition(Transition.Attack, StateID.Attack); MoveToTarget moveToTarget = new MoveToTarget(this, fsm, anim); moveToTarget.AddTransition(Transition.SeekTarget, StateID.SeekTarget); moveToTarget.AddTransition(Transition.Attack, StateID.Attack); AttackTarget attackTarget = new AttackTarget(this, fsm, anim); attackTarget.AddTransition(Transition.SeekTarget, StateID.SeekTarget); attackTarget.AddTransition(Transition.MoveToTarget, StateID.MoveToTarget); fsm.AddState(seekTarget); fsm.AddState(moveToTarget); fsm.AddState(attackTarget); }