public void changeTo(string name, params object[] parameters) { if (GSTest.GSDEBUG) { GSLogTool.wFormat("GSStateM.changeTo", "name:{0} parameters:{1}", name, parameters); } else { GSLogTool.dFormat("GSStateM.changeTo", "name:{0} parameters:{1}", name, parameters); } if (!mStates.ContainsKey(name)) { GSLogTool.eFormat("GSStateM.changeTo", "name:{} not exit", name); return; } if (mCurState != null) { mCurState.onExit(); } mCurState = mStates[name]; mCurState.onEnter(parameters); }
public void destroy() { mCurState = null; foreach (var state in mStates.Values) { state.destroy(); } mStates.Clear(); }
public void add(GSState state) { GSLogTool.dFormat("GSStateM.add", "state:{0}", state); string name = state.Name; if (mStates.ContainsKey(name)) { GSLogTool.eFormat("GSStateM.add", "name:{} already exit", name); return; } mStates.Add(name, state); }