Practice_Unity/Assets/Scripts/Managers/Manager.cs
Seonkyu.kim ba665c50ce 작업
1. 카메라 컨트롤러 작성
2. Data 매니저 작성
3. 몬스터 세팅 시작
4. Gemini 환경 설정 등록
2025-09-23 17:58:22 +09:00

65 lines
1.6 KiB
C#

using Animation;
using UnityEngine;
interface IManager
{
void Init() { }
void OnUpdate() { }
void Clear() { }
}
public class Manager : MonoBehaviour, IManager
{
static Manager s_instance;
static Manager Instance {get { Init(); return s_instance;}}
InputManager _input = new InputManager();
DataManager _data = new DataManager();
PoolManager _pool = new PoolManager();
ResourceManager _resource = new ResourceManager();
public static InputManager Input { get { return Instance._input; } }
public static DataManager Data { get { return Instance._data; } }
public static PoolManager Pool { get { return Instance._pool; } }
public static ResourceManager Resource { get { return Instance._resource; } }
static void Init()
{
if (s_instance == null)
{
GameObject obj = GameObject.Find("@Manager");
if (obj == null)
{
obj = new GameObject { name = "@Manager" };
obj.AddComponent<Manager>();
}
DontDestroyOnLoad(obj);
s_instance = obj.GetComponent<Manager>();
s_instance._input.Init();
s_instance._pool.Init();
}
}
void Awake()
{
Init();
}
void Update()
{
_input.OnUpdate();
}
// 클리어는 모든 것을 초기화 하는 역할로 자주 사용 되기에 그냥 전역적으로 사용 가능하게 함
public static void Clear()
{
Input.Clear();
Resource.Clear();
Pool.Clear();
Data.Clear();
}
}