ProjectDDD/Assets/_DDD/_Scripts/GameFramework/GameManager.cs

56 lines
1.6 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using UnityEngine;
namespace DDD
{
public class GameManager : Singleton<GameManager>
{
2025-07-10 05:48:44 +00:00
[SerializeField]
private ManagerDefinitionSo _managerDefinitionSo;
private List<Singleton> _managerInstances;
protected async void Start()
{
base.OnAwake();
if (_managerDefinitionSo == null)
{
Debug.LogError("_managerDefinitionSo");
return;
}
2025-07-17 08:15:40 +00:00
EventBus.ClearAll();
// 매니저 초기화
2025-07-10 05:48:44 +00:00
_managerInstances = new List<Singleton>(_managerDefinitionSo.ManagerClasses.Count);
2025-07-10 05:48:44 +00:00
foreach (var managerObject in _managerDefinitionSo.ManagerClasses)
{
var managerInstance = Instantiate(managerObject);
managerInstance.name = managerObject.name;
2025-07-10 05:48:44 +00:00
_managerInstances.Add(managerInstance);
if (managerInstance is IManager manager)
{
manager.PreInit();
}
}
foreach (var managerInstance in _managerInstances)
{
if (managerInstance is IManager manager)
{
await manager.Init();
}
}
2025-07-10 05:48:44 +00:00
foreach (var managerInstance in _managerInstances)
{
if (managerInstance is IManager manager)
{
manager.PostInit();
}
}
}
}
}