WaiXie_QuestionSystem/Assets/Script/Process/ProcessManager.cs

56 lines
1.5 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace Script.UI.Process
{
public sealed partial class ProcessManager : SingleManager<ProcessManager>
{
private Dictionary<ProcessType, ProcessBase> _processBases;
private ProcessBase currentProcessBase;
public ProcessManager()
{
_processBases = new Dictionary<ProcessType, ProcessBase>();
}
// public void AddProcess(ProcessBase processBase)
// {
// if (!_processBases.ContainsKey(processBase.processType))
// {
// _processBases.Add(processBase.processType, processBase);
// }
// }
public void InitProcess(List<ProcessBase> 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;
}
}
}
}