56 lines
1.5 KiB
C#
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|