/// <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; } }); }
protected bool GetBool(EBoolCondition eBool) { return(_fsm.boolDict[eBool]); }
public void SetBool(EBoolCondition eBool, bool value) { _fsm.SetBool(eBool, value); }