<feat> 환경설정 패널

This commit is contained in:
SOOBEEN HAN
2025-11-14 13:50:31 +09:00
parent 49b790b1e7
commit fb0360e768
35 changed files with 11045 additions and 2938 deletions

View 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
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2feec9b83d977b04293a347dced01156

View File

@@ -14,6 +14,8 @@ public class TCPView : MonoBehaviour
[SerializeField] private TextMeshProUGUI Ry;
[SerializeField] private TextMeshProUGUI Rz;
[SerializeField] public GameObject tcpPanel;
void Update()
{
OnTCPupdateRequested?.Invoke();