<feat> 환경설정 패널
This commit is contained in:
134
Assets/Scripts/View/EnvView.cs
Normal file
134
Assets/Scripts/View/EnvView.cs
Normal file
@@ -0,0 +1,134 @@
|
||||
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<bool> 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
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/View/EnvView.cs.meta
Normal file
2
Assets/Scripts/View/EnvView.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2feec9b83d977b04293a347dced01156
|
||||
@@ -14,6 +14,8 @@ public class TCPView : MonoBehaviour
|
||||
[SerializeField] private TextMeshProUGUI Ry;
|
||||
[SerializeField] private TextMeshProUGUI Rz;
|
||||
|
||||
[SerializeField] public GameObject tcpPanel;
|
||||
|
||||
void Update()
|
||||
{
|
||||
OnTCPupdateRequested?.Invoke();
|
||||
|
||||
Reference in New Issue
Block a user