52 lines
1.1 KiB
C#
52 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
interface IManager
|
|
{
|
|
void Init() { }
|
|
void Update() { } // 필수 구현 아님
|
|
void Clear() { }
|
|
}
|
|
|
|
public class Manager : MonoBehaviour, IManager
|
|
{
|
|
static Manager s_instance;
|
|
static Manager Instance {get { Init(); return s_instance;}}
|
|
|
|
InputManager _input = new InputManager();
|
|
|
|
public static InputManager Input { get { return Instance._input; } }
|
|
|
|
|
|
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>();
|
|
|
|
}
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
Init();
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
_input.Update();
|
|
}
|
|
|
|
// 클리어는 모든 것을 초기화 하는 역할로 자주 사용 되기에 그냥 전역적으로 사용 가능하게 함
|
|
public static void Clear()
|
|
{
|
|
Input.Clear();
|
|
}
|
|
}
|