using UnityEngine; using UnityEngine.SceneManagement; using TMPro; using UnityEngine.UI; public class MenuCeritaController : MonoBehaviour { [Header("UI Utama")] public TMP_Text textNamaKarakter; public TMP_Text textDialogAtas; public TMP_Text textDialogBawah; public Image imageAvatar; [Header("Data Cerita")] public CeritaLine[] daftarCerita; private int indexDialog = 0; private void Start() { TampilkanDialog(); } public void Selanjutnya() { if (indexDialog < daftarCerita.Length - 1) { indexDialog++; TampilkanDialog(); } } public void Sebelumnya() { if (indexDialog > 0) { indexDialog--; TampilkanDialog(); } } public void KembaliKeMenuBelajar() { SceneManager.LoadScene("Menu Belajar"); } private void TampilkanDialog() { if (daftarCerita == null || daftarCerita.Length == 0) { Debug.LogWarning("Data cerita belum diisi."); return; } CeritaLine data = daftarCerita[indexDialog]; textNamaKarakter.text = data.namaKarakter; if (imageAvatar != null && data.avatarKarakter != null) { imageAvatar.sprite = data.avatarKarakter; } // Dialog genap tampil di atas, dialog ganjil tampil di bawah if (indexDialog % 2 == 0) { textDialogAtas.text = data.isiDialog; textDialogBawah.text = ""; } else { // Agar dialog sebelumnya tetap terlihat di atas textDialogAtas.text = daftarCerita[indexDialog - 1].isiDialog; textDialogBawah.text = data.isiDialog; } } } [System.Serializable] public class CeritaLine { public string namaKarakter; [TextArea(2, 5)] public string isiDialog; public Sprite avatarKarakter; }