コード例 #1
0
        /// <summary>
        /// 助手准备工作
        /// </summary>
        public void OnPreparatory()
        {
            //流程初始化
            foreach (var procedure in Procedures)
            {
                procedure.Value.OnInit();
            }

            //进入默认流程
            if (_defaultProcedure != "")
            {
                Type type = ReflectionToolkit.GetTypeInRunTimeAssemblies(_defaultProcedure);
                if (type != null)
                {
                    if (Procedures.ContainsKey(type))
                    {
                        CurrentProcedure = Procedures[type];
                        CurrentProcedure.OnEnter(null);
                    }
                    else
                    {
                        throw new HTFrameworkException(HTFrameworkModule.Procedure, "进入流程失败:不存在流程 " + type.Name + " 或者流程未激活!");
                    }
                }
                else
                {
                    throw new HTFrameworkException(HTFrameworkModule.Procedure, "进入流程失败:丢失流程 " + _defaultProcedure + " !");
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 切换至下一流程
        /// </summary>
        public void SwitchNextProcedure()
        {
            int index = ProcedureTypes.IndexOf(CurrentProcedure.GetType());

            if (index >= ProcedureTypes.Count - 1)
            {
                SwitchProcedure(ProcedureTypes[0]);
            }
            else
            {
                SwitchProcedure(ProcedureTypes[index + 1]);
            }
        }
コード例 #3
0
        /// <summary>
        /// 切换至上一流程
        /// </summary>
        public void SwitchLastProcedure()
        {
            int index = ProcedureTypes.IndexOf(CurrentProcedure.GetType());

            if (index <= 0)
            {
                SwitchProcedure(ProcedureTypes[ProcedureTypes.Count - 1]);
            }
            else
            {
                SwitchProcedure(ProcedureTypes[index - 1]);
            }
        }
コード例 #4
0
        /// <summary>
        /// 刷新助手
        /// </summary>
        public void OnRefresh()
        {
            if (CurrentProcedure != null)
            {
                CurrentProcedure.OnUpdate();

                if (_timer < 1)
                {
                    _timer += Time.deltaTime;
                }
                else
                {
                    _timer -= 1;
                    CurrentProcedure.OnUpdateSecond();
                }
            }
        }