using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.InputSystem; public class IntroUIManager : MonoBehaviour { [Header("Menu Settings")] public List MenuButtons; // 인스펙터에서 버튼들을 등록함 private MenuLogic _menu; // 내부적으로 로직 객체를 들고 있음 // Start is called once before the first execution of Update after the MonoBehaviour is created private void Start() { SetMenuLogic(new MenuLogic(MenuButtons)); InputManager.Instance.SetUIInputMap("IntroUI"); } private void SetMenuLogic(MenuLogic menuLogic) { //혹시라도 나중에 이벤트를 재할당할 일이 있다면 반드시 기존 이벤트는 해제하고 연결해야함 if(_menu != null) { InputManager.Instance.OnKeyDown_UpArrowEvent -= _menu.MenuMoveUp; InputManager.Instance.OnKeyDown_DownArrowEvent -= _menu.MenuMoveDown; InputManager.Instance.OnKeyDown_EnterEvent -= _menu.MenuConfirm; } _menu = menuLogic; InputManager.Instance.OnKeyDown_UpArrowEvent += _menu.MenuMoveUp; InputManager.Instance.OnKeyDown_DownArrowEvent += _menu.MenuMoveDown; InputManager.Instance.OnKeyDown_EnterEvent += _menu.MenuConfirm; } // Update is called once per frame private void Update() { } private void OnDestroy() { InputManager.Instance.OnKeyDown_UpArrowEvent -= _menu.MenuMoveUp; InputManager.Instance.OnKeyDown_DownArrowEvent -= _menu.MenuMoveDown; InputManager.Instance.OnKeyDown_EnterEvent -= _menu.MenuConfirm; } }