//根据转换条件获取要跳到的下一个状态 public StateEnum GetOutputState(TransitionEnum trans) { if (stateDic.ContainsKey(trans)) { return(stateDic[trans]); } return(StateEnum.Null); }
public Part(string name, int typeid, string w_express, string h_express, TransitionEnum w_transition, TransitionEnum h_transition, TransitionEnum v_transition, int colorIndex) { Name = name; Type = typeid; this.w_express = w_express; this.h_express = h_express; this.w_transition = w_transition; this.h_transition = h_transition; this.v_transition = v_transition; ColorIndex = colorIndex; }
public static TransitionDelegate GetTransitionDelegate(TransitionEnum a_TransitionEnum) { switch (a_TransitionEnum) { case TransitionEnum.LinearInOut: return (LinearInOut); case TransitionEnum.SmoothInOut: return (SmoothInOut); case TransitionEnum.LinearInSmoothOut: return (LinearInSmoothOut); case TransitionEnum.SmoothInLinearOut: return (SmoothInLinearOut); default: return (LinearInOut); } }
public void RemoveTransition(TransitionEnum trans) { if (trans == TransitionEnum.Null) { Debug.LogError("FSMState ERROR: NullTransition is not allowed"); return; } if (stateDic.ContainsKey(trans)) { stateDic.Remove(trans); } else { Debug.LogError("FSMState ERROR: Transition " + trans.ToString() + " passed to " + stateName.ToString() + " was not on the state's transition list"); } }
private Part ReadPartFromNode(XmlElement node) { string name = node.Attributes.GetNamedItem("name").Value; int tp = int.Parse(node.Attributes.GetNamedItem("type").Value); string w = node.Attributes.GetNamedItem("w_express").Value; string h = node.Attributes.GetNamedItem("h_express").Value; string v = node.Attributes.GetNamedItem("v_transition").Value; TransitionEnum wt = (TransitionEnum)Enum.Parse(typeof(TransitionEnum), node.Attributes.GetNamedItem("w_transition").Value); TransitionEnum ht = (TransitionEnum)Enum.Parse(typeof(TransitionEnum), node.Attributes.GetNamedItem("h_transition").Value); TransitionEnum vt = (TransitionEnum)Enum.Parse(typeof(TransitionEnum), node.Attributes.GetNamedItem("v_transition").Value); //node.SelectSingleNode() //Part res = new Part(name,tp,w,h,wt,ht,vt); ; throw new NotImplementedException(); }
public void AddTransition(TransitionEnum trans, StateEnum stateName) { if (trans == TransitionEnum.Null) { Debug.LogError("FSMState ERROR: NullTransition is not allowed for a real transition"); return; } if (stateName == StateEnum.Null) { Debug.LogError("FSMState ERROR: NullStateID is not allowed for a real ID"); return; } if (stateDic.ContainsKey(trans)) { Debug.LogError("FSMState ERROR: State " + this.stateName.ToString() + " already has transition " + trans.ToString() + "Impossible to assign to another state"); return; } stateDic.Add(trans, stateName); }
public void ChangeState(TransitionEnum trans) { if (trans == TransitionEnum.Null) { Debug.LogError("FSM ERROR: NullTransition is not allowed for a real transition"); return; } StateEnum nextState = currentState.GetOutputState(trans); if (nextState == StateEnum.Null) { Debug.LogError("FSM ERROR: State " + currentStateEnum.ToString() + " does not have a target state " + " for transition " + trans.ToString()); return; } currentStateEnum = nextState; if (!stateDic.ContainsKey(nextState)) { Debug.LogError("FSM ERROR: State " + currentStateEnum.ToString() + " does not have a target state " + " for transition " + trans.ToString()); return; } currentState.OnLeaveState(); //Debug.LogError("上一个状态已经离开 " + currentState.StateName.ToString()); currentState = stateDic[nextState]; //Debug.LogError("下一个状态即将进入 " + currentState.StateName.ToString()); currentState.OnEnterState(); }
public void StartTransition(TransitionEnum transition) { throw new NotImplementedException(); }
public void StartTransition(TransitionEnum transition) { m_SwitcherParser.StartTransition(transition); }
public void TransitionProc(TransitionEnum transition, Signal signal, StateData submachineState) { if (m_StateMachineImpl == null) return; switch (transition) { case TransitionEnum.DriveDistance_ENUM_INITIAL_10__TO__FORWARDSTATE_5: m_StateMachineImpl.currentTransition.SetTransition((int)transition, submachineState, "DriveDistance_Initial_10__TO__ForwardState_5", "{349C5E01-7C43-4303-AB4B-888A0D4917F2},"); Initial_10__TO__ForwardState_5(signal, submachineState); break; case TransitionEnum.DriveDistance_ENUM_FORWARDSTATE__TO__STOPSTATE_6: m_StateMachineImpl.currentTransition.SetTransition((int)transition, submachineState, "DriveDistance_ForwardState__TO__StopState_6", "{8083DC99-F5F9-4020-8F9A-8B14BF7FC814},"); ForwardState__TO__StopState_6(signal, submachineState); break; } m_StateMachineImpl.currentTransition.SetTransition((int)TransitionEnum.NOTRANSITION, null, "", ""); }