Esempio n. 1
0
 /// <summary>
 /// SetBool,外部调用
 /// </summary>
 /// <param name="eBool"></param>
 /// <param name="value"></param>
 public void SetBool(EBoolCondition eBool, bool value)
 {
     //if (boolDict.ContainsKey(eBool))
     //else
     //	boolDict.Add(eBool, value);
     boolDict[eBool] = value;
     //优先anyState
     anyState.transitionList.ForEach(tra =>
     {
         // 目标状态不为当前状态
         if (tra.to != GetCurrentState())
         {
             if (LoopThroughTrasitionConditions(tra))
             {
                 //成功变更状态
                 //从AnyStte更新状态后,需从下往上更新current
                 UpdateCurrent();
                 // 已经成功找到下一个状态,停止遍历
                 return;
             }
         }
     });
     //再Current
     GetCurrentState().transitionList.ForEach(tra =>
     {
         if (LoopThroughTrasitionConditions(tra))
         {
             //成功变更状态,直接更新状态后,只有本fsm的current变化
             // 已经成功找到下一个状态,停止遍历
             return;
         }
     });
 }
Esempio n. 2
0
 protected bool GetBool(EBoolCondition eBool)
 {
     return(_fsm.boolDict[eBool]);
 }
Esempio n. 3
0
 public void SetBool(EBoolCondition eBool, bool value)
 {
     _fsm.SetBool(eBool, value);
 }