Practice_Unity/Assets/Scripts/Managers/Manager.cs
Seonkyu.kim 488c0858ad 작업
1. UI 버튼 작업 했음
2. 칼, 방패 따로 붙이는 작업 헀음
3. 공격 모션에 이제 버튼 연동함

Todo
1. 공격시 화면 이상하게 흔들리는거 수정할 차례
2. 히트 박스 해서 몬스터 공격하는거 연동하기
2025-09-29 17:59:40 +09:00

85 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 Update()
{
_input.OnUpdate();
}
private void OnDestroy()
{
Clear();
}
void OnApplicationQuit()
{
Clear();
}
// 클리어는 모든 것을 초기화 하는 역할로 자주 사용 되기에 그냥 전역적으로 사용 가능하게 함
public static void Clear()
{
Input.Clear();
Resource.Clear();
Pool.Clear();
Data.Clear();
}
}