/// <summary> /// 通用的建立子流程. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="mono"></param> public void CreateAddPorc <T>(MonoBehaviour mono) where T : ProcBase { string tmpstr = typeof(T).ToString(); ProcBase newporc = (T)Activator.CreateInstance(typeof(T), mono, tmpstr); Add(tmpstr, newporc); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <param name="proc"></param> /// <returns></returns> public bool Add(string name, ProcBase proc) { if (!procDic.ContainsKey(name)) { procDic.Add(name, proc); proc.Initialize(); return(true); } return(false); }
public void SwitchProc(ProcID proc) { if (curProcID != ProcID.None) { ProcBase preProc = GetProc(curProcID); preProc.OnLeave(); } ProcBase curProc = GetProc(proc); curProc.OnEnter(); curProcID = proc; }
/// <summary> /// 暴力直接換. /// </summary> /// <param name="name"></param> /// <returns></returns> public bool SetCurrProc(string name) { if (procDic.ContainsKey(name)) { lastProcName = currProcName; currProcName = name; currProc = procDic[name]; //還是得做一次EnterProc. isEnterProc = true; return(true); } return(false); }