130 lines
3.7 KiB
C#
130 lines
3.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class Test : MonoBehaviour
|
|
{
|
|
[Header("Daftar Pertanyaan")]
|
|
public List<Questions> daftarPertanyaan;
|
|
|
|
[Header("UI Komponen")]
|
|
public List<TextMeshProUGUI> textPertanyaanList;
|
|
public List<QuestionToggle> toggleJawabanList;
|
|
|
|
public GameObject questionBox;
|
|
public GameObject questionBox2;
|
|
public GameObject questionBox3;
|
|
|
|
public GameObject movementBlock;
|
|
|
|
public ToggleGroup toggleGroup;
|
|
|
|
public List<int> collectedJawaban = new List<int>();
|
|
|
|
private List<Questions> pertanyaanTeracak;
|
|
|
|
private void Awake()
|
|
{
|
|
|
|
}
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
// Acak pertanyaan saja
|
|
pertanyaanTeracak = daftarPertanyaan.OrderBy(q => Random.value).ToList();
|
|
|
|
// Tampilkan pertanyaan dan jawaban (jawaban tidak diacak)
|
|
for (int i = 0; i < textPertanyaanList.Count && i < pertanyaanTeracak.Count; i++)
|
|
{
|
|
var pertanyaan = pertanyaanTeracak[i];
|
|
|
|
// Set teks pertanyaan
|
|
textPertanyaanList[i].text = pertanyaan.pertanyaan;
|
|
|
|
// Tidak mengacak jawaban
|
|
var jawaban = pertanyaan.jawaban;
|
|
|
|
// Set teks jawaban ke Toggle
|
|
var toggleGroup = toggleJawabanList[i].toggles;
|
|
for (int j = 0; j < toggleGroup.Count && j < jawaban.Count; j++)
|
|
{
|
|
toggleGroup[j].GetComponentInChildren<TextMeshProUGUI>().text = jawaban[j];
|
|
}
|
|
}
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
|
|
public void QuestionsBox()
|
|
{
|
|
questionBox.SetActive(true);
|
|
}
|
|
|
|
public void SubmitButton()
|
|
{
|
|
Toggle toggle = toggleGroup.ActiveToggles().FirstOrDefault();
|
|
|
|
if (toggle != null)
|
|
{
|
|
string jawabanUser = toggle.GetComponentInChildren<TextMeshProUGUI>().text;
|
|
Debug.Log("Jawaban user: " + jawabanUser);
|
|
|
|
// Cari pertanyaan aktif berdasarkan text pertanyaan
|
|
string teksPertanyaanAktif = textPertanyaanList[0].text;
|
|
Questions pertanyaanAktif = pertanyaanTeracak
|
|
.FirstOrDefault(q => q.pertanyaan == teksPertanyaanAktif);
|
|
|
|
if (pertanyaanAktif != null)
|
|
{
|
|
// Contoh perbandingan jawaban
|
|
if (jawabanUser == pertanyaanAktif.jawabanBenar)
|
|
{
|
|
Debug.Log("Jawaban Benar: " + pertanyaanAktif.jawabanBenar + ", true");
|
|
collectedJawaban.Add(1);
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("Jawaban Benar: " + pertanyaanAktif.jawabanBenar + ", false");
|
|
collectedJawaban.Add(2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Debug.LogWarning("Pertanyaan aktif tidak ditemukan!");
|
|
}
|
|
}
|
|
questionBox.SetActive(false);
|
|
movementBlock.SetActive(false);
|
|
}
|
|
|
|
public void ShowQuestion(int index)
|
|
{
|
|
if (index < pertanyaanTeracak.Count)
|
|
{
|
|
var pertanyaan = pertanyaanTeracak[index];
|
|
questionBox.SetActive(true);
|
|
movementBlock.SetActive(true);
|
|
|
|
// Set text pertanyaan
|
|
textPertanyaanList[0].text = pertanyaan.pertanyaan;
|
|
|
|
// Set jawaban ke Toggle
|
|
var jawaban = pertanyaan.jawaban;
|
|
var toggleGroup = toggleJawabanList[0].toggles;
|
|
|
|
for (int j = 0; j < toggleGroup.Count && j < jawaban.Count; j++)
|
|
{
|
|
toggleGroup[j].GetComponentInChildren<TextMeshProUGUI>().text = jawaban[j];
|
|
}
|
|
}
|
|
}
|
|
}
|