시야감지 작업 완료 에너미 상태 완료 상태 변환 로직 완료 필요한건 todo 파일 보면서 확인 할 것 Todo 1. 에너미 추가학기 위한 path 하는 작업 하기
88 lines
1.9 KiB
C#
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();
|
|
}
|
|
}
|