コード例 #1
0
        /// <summary>
        /// 切换子流程
        /// </summary>
        /// <typeparam name="T">子流程类型</typeparam>
        /// <param name="args">参数列表</param>
        public void ChangeSubProcedure <T>(params object[] args) where T : SubProcedureBase, new()
        {
            m_subProcedureBases = m_subProcedureBases ?? new List <SubProcedureBase>();

            m_currentSubProcedure?.OnExit();

            foreach (var item in m_subProcedureBases)
            {
                if (item.GetType() == typeof(T))
                {
                    m_currentSubProcedure = item;
                    m_currentSubProcedure.OnEnter(args);
                    return;
                }
            }

            m_currentSubProcedure = new T();
            m_currentSubProcedure.OnEnter(args);
            m_subProcedureBases.Add(m_currentSubProcedure);
        }
コード例 #2
0
 /// <summary>
 /// 将当前子流程置为空
 /// </summary>
 public void ChangeSubProcedure2None()
 {
     m_currentSubProcedure?.OnExit();
     m_currentSubProcedure = null;
 }