using System.Collections.Generic; using UnityEngine; namespace Script.UI.Process { public sealed partial class ProcessManager : SingleManager { private Dictionary _processBases; private ProcessBase currentProcessBase; public ProcessManager() { _processBases = new Dictionary(); } // public void AddProcess(ProcessBase processBase) // { // if (!_processBases.ContainsKey(processBase.processType)) // { // _processBases.Add(processBase.processType, processBase); // } // } public void InitProcess(List list) { foreach (var processBase in list) { _processBases.Add(processBase.processType, processBase); } } public void StartProcess(ProcessType processType) { if (_processBases.TryGetValue(processType, out var processBase)) { if (currentProcessBase != null) { currentProcessBase.Exit(); } currentProcessBase = processBase; processBase.Enter(); } } public void StopProcess(ProcessType processType) { if (_processBases.TryGetValue(processType, out var processBase)) { processBase.Exit(); currentProcessBase = null; } } } }