Practice_Unity/Assets/Scripts/Managers/Manager.cs
SeonKyu_Kim b2e290df76 작업
시야감지 작업 완료
에너미 상태 완료
상태 변환 로직 완료

필요한건 todo 파일 보면서 확인 할 것
Todo
1. 에너미 추가학기 위한 path 하는 작업 하기
2025-09-24 18:06:09 +09:00

88 lines
1.9 KiB
C#

using System;
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
{
if (s_instance == null)
{
GameObject obj = GameObject.Find("@Manager");
if (obj == null)
{
obj = new GameObject { name = "@Manager" };
obj.AddComponent<Manager>();
}
s_instance = obj.GetComponent<Manager>();
DontDestroyOnLoad(obj);
s_instance.Init();
}
return s_instance;
}
}
private InputManager _input;
private DataManager _data;
private PoolManager _pool;
private ResourceManager _resource;
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; } }
private void Init()
{
s_instance._input = new InputManager();
s_instance._data = new DataManager();
s_instance._pool = new PoolManager();
s_instance._resource = new ResourceManager();
s_instance._input.Init();
s_instance._pool.Init();
}
void Awake()
{
}
void Update()
{
_input.OnUpdate();
}
private void OnDestroy()
{
Clear();
}
void OnApplicationQuit()
{
Clear();
}
// 클리어는 모든 것을 초기화 하는 역할로 자주 사용 되기에 그냥 전역적으로 사용 가능하게 함
public static void Clear()
{
Input.Clear();
Resource.Clear();
Pool.Clear();
Data.Clear();
}
}