Practice_Unity/Assets/Scripts/Managers/Manager.cs
Seonkyu.kim 60d64f1069 작업
1. UI - 조이스틱 UIManager에 추가 및 Scene에서 호출 방식 변경
2. UI - 경험치 바 앞에 레벨 아이콘 추가
3. 몬스터 죽었을때 경험치로 변경
4. 경험치 바와 레벨 아이콘 연동

Todo
1. 투사체 공격 만들기
2. 몬스터가 플레이어 쫓아오게 만들기
3. 몬스터를 카메라 외각에서 다량으로 생성하는 기능 추가하기
4. 몬스터가 캐릭터 공격시 체력 닳게 하기
5. 메뉴 UI 만들기
6. 레벨업시 획득 스킬 UI 만들기
7. 체력바 UI 만들기
8. 공격시 데미지 띄우는 UI 만들기
2025-10-02 17:37:10 +09:00

88 lines
2.1 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;
private UIManager _ui;
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; } }
public static UIManager UI { get { return Instance._ui; } }
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._ui = new UIManager();
s_instance._input.Init();
s_instance._pool.Init();
s_instance._ui.Init();
}
void Update()
{
_input.OnUpdate();
}
private void OnDestroy()
{
Clear();
}
void OnApplicationQuit()
{
Clear();
}
// 클리어는 모든 것을 초기화 하는 역할로 자주 사용 되기에 그냥 전역적으로 사용 가능하게 함
public static void Clear()
{
Input.Clear();
Resource.Clear();
Pool.Clear();
Data.Clear();
}
}