using System.Collections; using System.Collections.Generic; using System.Data.SqlTypes; using System.Diagnostics; using UnityEngine; /// /// 方案/设备/系统 /// public class D_Scheme { #region 变量 /// /// 自身Id /// public int id; /// /// 方案名称 /// public string schemeName; public string ToolOrMaterilOrDevice; public int deviceTypeId; public string deviceMap; #endregion /// /// 存放所有流程 /// public List processes = new List(); /// /// 当前流程 /// private D_Process currentProcess; /// /// 当前流程 /// public D_Process CurrentProcess { get => currentProcess; set { currentProcess = value; CurrentProcessId = currentProcess.id; } } /// /// 当前流程id /// private int currentProcessId; /// /// 当前流程id /// public int CurrentProcessId { get => currentProcessId; set { currentProcessId = value; GameManager.ProcessMgr.processId = currentProcessId; } } /// /// 初始化 /// public void Init() { if (processes == null || processes.Count == 0) return; CurrentProcess = processes[0]; CurrentProcess.Init(); } /// /// 切换流程 /// public void HandoverProcess(int processId, int subProcessId = 0, int subProcessStepId = 0) { if (CurrentProcess != null) CurrentProcess.Exit(); CurrentProcess = GetProcess(processId); CurrentProcess.Enter(); //UnityEngine.Debug.Log("切换流程到:" + processId); if (subProcessId == 0) CurrentProcess.HandoverSubProcess(CurrentProcess.subProcesses[0].id, subProcessStepId); else CurrentProcess.HandoverSubProcess(subProcessId, subProcessStepId); } /// /// 根据id获取 流程对象 /// /// /// private D_Process GetProcess(int processId) { for (int i = 0; i < processes.Count; i++) { if (processes[i].id == processId) { return processes[i]; } } return null; } }