Пример #1
0
    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);
    }
Пример #2
0
 public void destroy()
 {
     mCurState = null;
     foreach (var state in mStates.Values)
     {
         state.destroy();
     }
     mStates.Clear();
 }
Пример #3
0
    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);
    }