48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace DDD
|
|
{
|
|
public class GameManager : Singleton<GameManager>
|
|
{
|
|
[SerializeField]
|
|
private ManagerDefinitionSo _managerDefinitionSo;
|
|
|
|
private List<Singleton> _managerInstances;
|
|
|
|
protected void Start()
|
|
{
|
|
base.OnAwake();
|
|
|
|
if (_managerDefinitionSo == null)
|
|
{
|
|
Debug.LogError("_managerDefinitionSo");
|
|
return;
|
|
}
|
|
|
|
EventBus.ClearAll();
|
|
|
|
// 매니저 초기화
|
|
_managerInstances = new List<Singleton>(_managerDefinitionSo.ManagerClasses.Count);
|
|
|
|
foreach (var managerObject in _managerDefinitionSo.ManagerClasses)
|
|
{
|
|
var managerInstance = Instantiate(managerObject);
|
|
managerInstance.name = managerObject.name;
|
|
|
|
_managerInstances.Add(managerInstance);
|
|
if (managerInstance is IManager manager)
|
|
{
|
|
manager.Init();
|
|
}
|
|
}
|
|
foreach (var managerInstance in _managerInstances)
|
|
{
|
|
if (managerInstance is IManager manager)
|
|
{
|
|
manager.PostInit();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |