/// <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; } }); }
protected float GetFloat(EFloatCondition eFloat) { return(_fsm.floatDict[eFloat]); }
public void SetFloat(EFloatCondition eFloat, float value) { _fsm.SetFloat(eFloat, value); }