/// <summary>
 /// 检测是否要切换状态
 /// </summary>
 /// <param name="fsm">使用的状态机</param>
 public void Reason(FSMBase fsm)
 {
     for (int i = 0; i < Triggers.Count; ++i)
     {
         if (Triggers[i].HandleTrigger(fsm))
         {
             FSMStateID stateID = map[Triggers[i].TriggerID];
             fsm.ChangeActiveState(stateID);
             return;
         }
     }
 }
Exemplo n.º 2
0
 //检测当前状态的条件是否满足
 public void Reason(FSMBase fsm)
 {
     for (int i = 0; i < triggers.Count; i++)
     {
         //发现条件满足
         if (triggers[i].HandleTrigger(fsm))
         {
             //从映射表中获取输出状态
             FSMStateID stateID = map[triggers[i].TriggerID];
             //切换状态
             fsm.ChangeActiveState(stateID);
             return;
         }
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// *检测当前状态是否满足
 /// </summary>
 public void Reason(FSMBase fsm)
 {
     for (int i = 0; i < Triggers.Count; i++)
     {
         //如果返回值为true
         if (Triggers[i].HandleTrigger(fsm))
         {
             //从表中获取输出状态
             FSMStateID stateID = map[Triggers[i].TriggerID];
             //切换状态
             fsm.ChangeActiveState(stateID);
             return;
         }
     }
 }