using Assets.Resources.Scripts.Constants; using UnityEngine; using UnityEngine.SceneManagement; public class BackButtonHandler : MonoBehaviour { private bool isExitPromptVisible = false; public GameObject exitPromptUI; // Una referencia a un panel de UI para confirmar la salida void Start() { if (exitPromptUI != null) { exitPromptUI.SetActive(false); // Desactivar el panel al inicio } } // Update is called once per frame void Update() { // Detecta si el botón "back" es presionado if (Input.GetKeyDown(KeyCode.Escape)) { HandleBackButton(); } } // Método que maneja la lógica del botón "back" void HandleBackButton() { string currentScene = SceneManager.GetActiveScene().name; if (currentScene == ScreenNames.AR) { // Si estamos en la escena AR, cargar la escena principal SceneManager.LoadScene(ScreenNames.Main); } else if (currentScene == ScreenNames.Main) { // Si ya estamos en la escena principal, preguntar si quiere salir if (isExitPromptVisible) { // Si el cuadro de confirmación ya está visible, salir de la aplicación Application.Quit(); } else { // Mostrar el cuadro de confirmación para salir ShowExitPrompt(); } } } // Mostrar el cuadro de confirmación para salir private void ShowExitPrompt() { isExitPromptVisible = true; if (exitPromptUI != null) { exitPromptUI.SetActive(true); // Mostrar el panel de confirmación } } // Llamar a este método si el usuario confirma la salida public void ConfirmExit() { Application.Quit(); } // Llamar a este método si el usuario cancela la salida public void CancelExit() { isExitPromptVisible = false; if (exitPromptUI != null) { exitPromptUI.SetActive(false); // Ocultar el panel de confirmación } } }