MIF_E31230101/Assets/Script Manager/MenuCeritaController.cs

88 lines
2.0 KiB
C#

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;
}