예제 #1
0
 public void ChangeState(SummonedUnitState state)
 {
     currentFsm.OnExit();
     currentFsm = fsms[state];
     this.state = state;
     fsms[state].OnEnter();
     DebugUtils.Log(DebugUtils.Type.AI_Summon, string.Format("Summon {0} enter {1} state", id, this.state));
 }
예제 #2
0
        public virtual void InitializeFsm()
        {
            fsmBorn  = new SummonedUnitFsmBorn(this);
            fsmIdle  = new SummonedUnitFsmIdle(this);
            fsmFight = new SummonedUnitFsmFight(this);
            fsmDying = new SummonedUnitFsmDying(this);
            fsmDeath = new SummonedUnitFsmDeath(this);

            fsms = new Dictionary <SummonedUnitState, Fsm>();
            fsms.Add(SummonedUnitState.Born, fsmBorn);
            fsms.Add(SummonedUnitState.Idle, fsmIdle);
            fsms.Add(SummonedUnitState.Fight, fsmFight);
            fsms.Add(SummonedUnitState.Dying, fsmDying);
            fsms.Add(SummonedUnitState.Death, fsmDeath);

            currentFsm = fsmBorn;
            state      = SummonedUnitState.Born;
        }