using UnityEngine; public class MengaturSlideAkhir : MonoBehaviour { [Header("Slide dan Kontrol")] public GameObject[] slides; public GameObject slidePanel; private int currentSlide = 0; public PlayerBergerak1 kontrolPlayer; public FlowController flowManager; [Header("Deteksi Posisi Player")] public Transform player; public Transform zonaAman; public float radiusDeteksi = 1.5f; private bool sudahDekat = false; [Header("Slide Logic")] public int indexSlideUntukConfirm = 2; // ⬅️ Ubah sesuai jumlah slide kamu private float waktuTerakhirNextSlide = -10f; private float delayMinimumConfirm = 0.2f; void Start() { slidePanel.SetActive(false); // Jangan tampilkan dulu } void Update() { // Deteksi apakah player sudah cukup dekat dengan zona aman if (!sudahDekat && Vector3.Distance(player.position, zonaAman.position) <= radiusDeteksi) { sudahDekat = true; MunculkanSlideAkhir(); } // NEXT if (Input.GetKeyDown(KeyCode.JoystickButton1) || Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKeyDown(KeyCode.E)) { if (currentSlide < indexSlideUntukConfirm) { NextSlide(); } else if (currentSlide == indexSlideUntukConfirm && Time.time - waktuTerakhirNextSlide > delayMinimumConfirm) { ConfirmSlide(); } } // PREV if (Input.GetKeyDown(KeyCode.JoystickButton0) || Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.Q)) { PrevSlide(); } // ENTER untuk Confirm if (Input.GetKeyDown(KeyCode.Return)) { if (currentSlide == indexSlideUntukConfirm && Time.time - waktuTerakhirNextSlide > delayMinimumConfirm) { ConfirmSlide(); } } } void MunculkanSlideAkhir() { slidePanel.SetActive(true); ShowSlide(0); if (kontrolPlayer != null) kontrolPlayer.Gerak = false; } void ShowSlide(int index) { for (int i = 0; i < slides.Length; i++) slides[i].SetActive(i == index); currentSlide = index; } public void NextSlide() { if (currentSlide < slides.Length - 1) { ShowSlide(currentSlide + 1); waktuTerakhirNextSlide = Time.time; } } public void PrevSlide() { if (currentSlide > 0) { ShowSlide(currentSlide - 1); } } public void ConfirmSlide() { slidePanel.SetActive(false); if (kontrolPlayer != null) kontrolPlayer.Gerak = true; // Panggil flow manager untuk kembali ke menu utama (kalau kamu sudah buat fungsinya) if (flowManager != null) flowManager.KembaliKeMenu(); Debug.Log("✅ ConfirmSlide ditekan, kembali ke menu."); } }