問點AI的問題 但跟FSM無關
戰棋所以每次都是Idle的時候執行RunAI()
不過我看之前的專案跟這次的專案流程有一點不同
第一種 :
void Idle.RunAI()
{
    ai = unit.AI;
    ai.Think();
}
void BattleController.ChangeAI(BattleUnit unit, State state, object params)
{
    switch (state)
    {
        State.Fear:
            var ai = new FearAI();
            ai.SetParams(params);
            unit.AI = ai;
            return;
    }
}
第二種 :
void Idle.RunAI()
{
    switch (unit.state)
    {
        State.Fear:
            if (fearAI == null) fearAI = new FearAI();
            ai = fearAI;
            ai.SetParams(unit.stateParams);
            break;
        default:
            ai = normalAI;
            break;
    }
    ai.SetEntity(unitEntity);
    ai.Think();
}
void BattleController.ChangeAI(BattleUnit unit, State state, object params)
{
    unit.state = state;
    unit.stateParams = params;
}
第一種每個角色身上都有AI,在角色改變狀態的時候直接把unit.AI置換掉
第二種就Idle裡面塞了一堆AI,輪到角色的時候再把角色的參數丟到AI裡面
兩種做法好像...差不多??
第二種是不是好管理一點啊