50 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
} |