/// <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 + " !"); } } }
/// <summary> /// 切换至下一流程 /// </summary> public void SwitchNextProcedure() { int index = ProcedureTypes.IndexOf(CurrentProcedure.GetType()); if (index >= ProcedureTypes.Count - 1) { SwitchProcedure(ProcedureTypes[0]); } else { SwitchProcedure(ProcedureTypes[index + 1]); } }
/// <summary> /// 切换至上一流程 /// </summary> public void SwitchLastProcedure() { int index = ProcedureTypes.IndexOf(CurrentProcedure.GetType()); if (index <= 0) { SwitchProcedure(ProcedureTypes[ProcedureTypes.Count - 1]); } else { SwitchProcedure(ProcedureTypes[index - 1]); } }
/// <summary> /// 刷新助手 /// </summary> public void OnRefresh() { if (CurrentProcedure != null) { CurrentProcedure.OnUpdate(); if (_timer < 1) { _timer += Time.deltaTime; } else { _timer -= 1; CurrentProcedure.OnUpdateSecond(); } } }