MIF_E31222398/Assets/Test.cs

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