using System; using TMPro; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.UI; public class EnvView : MonoBehaviour { [SerializeField] private GameObject envPanel; [SerializeField] private GameObject pauseMenuPanel; [SerializeField] private Button envBackBtn; [SerializeField] private Button[] toggleBtn; [SerializeField] private Button loadProgramBtn; [SerializeField] private Button newProgramBtn; [SerializeField] private Button helpBtn; [SerializeField] private Button exitBtn; [SerializeField] private GameObject icon_show; [SerializeField] private GameObject icon_hide; [SerializeField] private TextMeshProUGUI tcpToggleTMP; [SerializeField] private GameObject helpPanel; [SerializeField] private Button helpBackBtn; [SerializeField] private GameObject ProgramEnterPanel; [SerializeField] private GameObject NewProgramPanel; [SerializeField] private GameObject OriginalProgramPanel; public InputActionReference showEnvPanel; private bool isPressingMenu = false; public event Action OnToggleClicked; void Start() { envPanel.SetActive(false); if (showEnvPanel != null) { showEnvPanel.action.Enable(); showEnvPanel.action.performed += ShowEnvPanel; } envBackBtn.onClick.AddListener(() => HideAllPanels()); toggleBtn[0].onClick.AddListener(() => ToggleTcp()); toggleBtn[1].onClick.AddListener(() => ToggleTcp()); loadProgramBtn.onClick.AddListener(() => LoadProgramList()); newProgramBtn.onClick.AddListener(() => OpenNewProgramPanel()); helpBtn.onClick.AddListener(() => OpenHelpPanel()); helpBackBtn.onClick.AddListener(() => CloseHelpPanel()); exitBtn.onClick.AddListener(() => QuitGame()); } private void OnDestroy() { if (showEnvPanel != null) { showEnvPanel.action.performed -= ShowEnvPanel; } } private void ShowEnvPanel(InputAction.CallbackContext obj) { if (!isPressingMenu) { envPanel.SetActive(true); ProgramEnterPanel.SetActive(false); } else { envPanel.SetActive(false); } isPressingMenu = !isPressingMenu; } private void HideAllPanels() { envPanel.SetActive(false); ProgramEnterPanel.SetActive(false); } private void OpenHelpPanel() { helpPanel.SetActive(true); pauseMenuPanel.SetActive(false); } private void CloseHelpPanel() { helpPanel.SetActive(false); pauseMenuPanel.SetActive(true); } private void ToggleTcp() { if(icon_show.activeSelf) { icon_show.SetActive(false); icon_hide.SetActive(true); tcpToggleTMP.text = "ÇöÀç TCP°ª OFF"; OnToggleClicked?.Invoke(false); } else if (icon_hide.activeSelf) { icon_hide.SetActive(false); icon_show.SetActive(true); tcpToggleTMP.text = "ÇöÀç TCP°ª ON"; OnToggleClicked?.Invoke(true); } } private void LoadProgramList() { envPanel.SetActive(false); ProgramEnterPanel.SetActive(true); NewProgramPanel.SetActive(false); OriginalProgramPanel.SetActive(true); } private void OpenNewProgramPanel() { envPanel.SetActive(false); ProgramEnterPanel.SetActive(true); NewProgramPanel.SetActive(true); OriginalProgramPanel.SetActive(false); } private void QuitGame() { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #else Application.Quit(); // ¾îÇø®ÄÉÀÌ¼Ç Á¾·á #endif } }