Files
Studio/Assets/Scripts/Studio/Managers/ManagerHub.cs
geondo55 410a3a5bb4 백업
2025-04-14 15:46:40 +09:00

50 lines
1.2 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using XED.Asset;
using XED.Core;
using XED.Util;
namespace XED.Manage
{
public class ManagerHub : UnitySingleton<ManagerHub>
{
HashSet<Manager> managers = new HashSet<Manager>();
public void Init()
{
Join(new ProjectManager());
Join(new FBXFileManager());
Join(new UserInputManager());
Join(new CustomAssetConnector());
Join(new RenderObjectHandler());
Join(new InterferedObjectManager());
Join(new CursorManager());
foreach(var m in managers)
{
m.Init();
}
}
void Join(Manager newManager)
{
if (!managers.Add(newManager))
{
Debug.LogError($"Manager {newManager} already exists in the hub.");
}
}
public T Get<T>() where T : Manager
{
var manager = default(T);
foreach (var m in managers)
{
if (m is T)
{
manager = m as T;
break;
}
}
return manager;
}
}
}