示例#1
0
    void Start()
    {
        LV1Att = atControl.construct(atBuild);

        fsmSystem = new FSMSystem(this.gameObject);

        FSMBaseState bornState = new LV1BornState(fsmSystem);

        bornState.AddTransition(FSMTransition.LeavePlayer, FSMStateID.stayState);

        //巡逻状态,在构造参数传一个系统参数,确定该状态是在哪个状态系统中管理的,状态转换的时候调用
        FSMBaseState stayState = new LV1StayState(fsmSystem);

        stayState.AddTransition(FSMTransition.SeePlayer, FSMStateID.attackState);
        stayState.AddTransition(FSMTransition.zeroHp, FSMStateID.death);

        //追逐状态
        FSMBaseState attackState = new LV1AttackState(fsmSystem);

        attackState.AddTransition(FSMTransition.LeavePlayer, FSMStateID.stayState);
        attackState.AddTransition(FSMTransition.zeroHp, FSMStateID.death);

        FSMBaseState dieState = new LV1DieState(fsmSystem);

        fsmSystem.AddFSMState(bornState);
        fsmSystem.AddFSMState(stayState);
        fsmSystem.AddFSMState(attackState);
        fsmSystem.AddFSMState(dieState);
    }
示例#2
0
    // Use this for initialization
    void Start()
    {
        bossOneAt = atControl.construct(atBuild);

        mySystem = new FSMSystem(this.gameObject);

        FSMBaseState bornState   = new bossOneBorn(mySystem);
        FSMBaseState stayState   = new bossOneStay(mySystem);
        FSMBaseState attackState = new bossOneAttack(mySystem);
        FSMBaseState skillOne    = new bossOneSkillOne(mySystem);
        FSMBaseState skillTwo    = new bossOneSkillTwo(mySystem);
        FSMBaseState skillThree  = new bossOneSkillThree(mySystem);
        FSMBaseState dieState    = new bossOneDie(mySystem);

        bornState.AddTransition(FSMTransition.LeavePlayer, FSMStateID.stayState);
        stayState.AddTransition(FSMTransition.SeePlayer, FSMStateID.attackState);
        stayState.AddTransition(FSMTransition.zeroHp, FSMStateID.death);
        attackState.AddTransition(FSMTransition.LeavePlayer, FSMStateID.stayState);
        attackState.AddTransition(FSMTransition.highHp, FSMStateID.skillOne);
        attackState.AddTransition(FSMTransition.halfHp, FSMStateID.skillTwo);
        attackState.AddTransition(FSMTransition.zeroHp, FSMStateID.death);
        skillOne.AddTransition(FSMTransition.SeePlayer, FSMStateID.attackState);
        skillOne.AddTransition(FSMTransition.zeroHp, FSMStateID.death);
        skillTwo.AddTransition(FSMTransition.SeePlayer, FSMStateID.attackState);
        skillTwo.AddTransition(FSMTransition.lowHp, FSMStateID.skillThree);
        skillTwo.AddTransition(FSMTransition.zeroHp, FSMStateID.death);
        skillThree.AddTransition(FSMTransition.SeePlayer, FSMStateID.attackState);
        skillThree.AddTransition(FSMTransition.zeroHp, FSMStateID.death);

        mySystem.AddFSMState(bornState);
        mySystem.AddFSMState(stayState);
        mySystem.AddFSMState(attackState);
        mySystem.AddFSMState(skillOne);
        mySystem.AddFSMState(skillTwo);
        mySystem.AddFSMState(skillThree);
        mySystem.AddFSMState(dieState);
    }