2025-11-14 13:50:31 +09:00
|
|
|
|
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;
|
2025-11-21 13:18:03 +09:00
|
|
|
|
public event Action OnLoadProgramListRequested;
|
2025-11-14 13:50:31 +09:00
|
|
|
|
|
|
|
|
|
|
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 = "<22><><EFBFBD><EFBFBD> TCP<43><50> OFF";
|
|
|
|
|
|
OnToggleClicked?.Invoke(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (icon_hide.activeSelf)
|
|
|
|
|
|
{
|
|
|
|
|
|
icon_hide.SetActive(false);
|
|
|
|
|
|
icon_show.SetActive(true);
|
|
|
|
|
|
tcpToggleTMP.text = "<22><><EFBFBD><EFBFBD> TCP<43><50> ON";
|
|
|
|
|
|
OnToggleClicked?.Invoke(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void LoadProgramList()
|
|
|
|
|
|
{
|
|
|
|
|
|
envPanel.SetActive(false);
|
|
|
|
|
|
ProgramEnterPanel.SetActive(true);
|
|
|
|
|
|
NewProgramPanel.SetActive(false);
|
|
|
|
|
|
OriginalProgramPanel.SetActive(true);
|
2025-11-21 13:18:03 +09:00
|
|
|
|
|
|
|
|
|
|
OnLoadProgramListRequested?.Invoke();
|
2025-11-14 13:50:31 +09:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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(); // <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>̼<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|