66 lines
1.8 KiB
C#
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);
|
|
}
|
|
} |