Example #1
0
 /// <summary>
 /// SetFloat,外部调用
 /// </summary>
 /// <param name="eFloat"></param>
 /// <param name="value"></param>
 public void SetFloat(EFloatCondition eFloat, float value)
 {
     //if (floatDict.ContainsKey(eFloat))
     //else
     //floatDict.Add(eFloat, value);
     floatDict[eFloat] = 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;
         }
     });
 }
Example #2
0
 protected float GetFloat(EFloatCondition eFloat)
 {
     return(_fsm.floatDict[eFloat]);
 }
Example #3
0
 public void SetFloat(EFloatCondition eFloat, float value)
 {
     _fsm.SetFloat(eFloat, value);
 }