MIF_E31221480/Assets/BackButtonManager.cs

66 lines
1.8 KiB
C#

using UnityEngine;
using UnityEngine.SceneManagement;
public class BackButtonManager : MonoBehaviour
{
[Header("Popup konfirmasi keluar (8. Logout)")]
public GameObject popupKeluar;
[Header("Popup lain yang ada di scene")]
public GameObject[] popupsLain;
[Header("Nama scene Main Menu")]
public string namaSceneMainMenu = "8. Logout"; // ganti sesuai nama scene main menu kamu
[Header("Nama scene tujuan kembali dari dalam game")]
public string namaSceneSebelumnya = "8. Logout"; // ganti sesuai scene yang mau kamu kembali di dalam game
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
string currentScene = SceneManager.GetActiveScene().name;
// Tutup popup lain dulu kalau ada yang aktif
foreach (GameObject popup in popupsLain)
{
if (popup != null && popup.activeSelf)
{
popup.SetActive(false);
return; // stop, jangan lanjut
}
}
if (currentScene == namaSceneMainMenu)
{
// Di Main Menu muncul popup keluar game
if (popupKeluar != null && !popupKeluar.activeSelf)
{
popupKeluar.SetActive(true);
}
}
else
{
// Di dalam game langsung load scene sebelumnya (bisa main menu atau scene lain)
SceneManager.LoadScene(namaSceneSebelumnya);
}
}
if (Input.GetKeyDown(KeyCode.Escape))
{
Debug.Log("Tombol Escape ditekan");
// kode lain...
}
}
public void KeluarGame()
{
Application.Quit();
}
public void BatalKeluar()
{
if (popupKeluar != null)
popupKeluar.SetActive(false);
}
}