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 { 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(); } DontDestroyOnLoad(obj); s_instance = obj.GetComponent(); } } void Start() { Init(); } void Update() { _input.OnUpdate(); } // 클리어는 모든 것을 초기화 하는 역할로 자주 사용 되기에 그냥 전역적으로 사용 가능하게 함 public static void Clear() { Input.Clear(); } }