using UnityEngine; using UnityEngine.Networking; using TMPro; using System.Collections.Generic; using UnityEngine.SceneManagement; // Tambah ini buat baca nama Scene public class QuizOnline : MonoBehaviour { [Header("Link Google Sheet (Isi Keduanya)")] public string linkCSV_Unsur = "PASTE_LINK_SHEET_1_DISINI"; public string linkCSV_Senyawa = "PASTE_LINK_SHEET_2_DISINI"; // Variabel buat nampung link mana yang bakal dipake private string urlFinal; [Header("Referensi UI")] public GameObject panelKuis; public GameObject panelLoading; public GameObject panelError; public TextMeshProUGUI textError; private Quiz quizManager; private QuizCollection databaseOnline; void Start() { quizManager = FindObjectOfType(); // --- LOGIKA DETEKSI SCENE --- string namaScene = SceneManager.GetActiveScene().name; // Cek nama scenenya mengandung kata apa? if (namaScene.Contains("Unsur")) { urlFinal = linkCSV_Unsur; Debug.Log("Mode Kuis: UNSUR (Sheet 1)"); } else if (namaScene.Contains("Senyawa")) { urlFinal = linkCSV_Senyawa; Debug.Log("Mode Kuis: SENYAWA (Sheet 2)"); } else { // Default kalau nama scene gak jelas, pake unsur aja urlFinal = linkCSV_Unsur; } AmbilData(); } public void AmbilData() { StartCoroutine(ProsesDownload()); } // ... (Sisanya SAMA PERSIS kayak kode lama kamu di bawah ini) ... public void ModeOffline() { if(panelLoading) panelLoading.SetActive(false); if(panelError) panelError.SetActive(false); if(panelKuis) panelKuis.SetActive(true); } System.Collections.IEnumerator ProsesDownload() { if(panelKuis) panelKuis.SetActive(false); if(panelError) panelError.SetActive(false); if(panelLoading) panelLoading.SetActive(true); if (Application.internetReachability == NetworkReachability.NotReachable) { MunculkanError("Yah, tidak ada koneksi internet!"); yield break; } // PENTING: Pake urlFinal yang sudah dipilih tadi UnityWebRequest www = UnityWebRequest.Get(urlFinal); yield return www.SendWebRequest(); if(panelLoading) panelLoading.SetActive(false); if (www.result != UnityWebRequest.Result.Success) { MunculkanError("Gagal mengambil soal.\nCek koneksi kamu ya!"); } else { ProsesCSV(www.downloadHandler.text); if(panelKuis) panelKuis.SetActive(true); } } void MunculkanError(string pesan) { if(panelLoading) panelLoading.SetActive(false); if(panelError) panelError.SetActive(true); if(textError) textError.text = pesan; } void ProsesCSV(string text) { databaseOnline = new QuizCollection(); databaseOnline.daftarSoal = new List(); string[] baris = text.Split('\n'); for (int i = 1; i < baris.Length; i++) { string barisData = baris[i].Trim(); if (string.IsNullOrEmpty(barisData)) continue; string[] kolom = barisData.Split(','); if (kolom.Length < 6) continue; QuestionData q = new QuestionData(); q.pertanyaan = kolom[0].Replace("\"", ""); q.pilihanJawaban = new string[4]; q.pilihanJawaban[0] = kolom[1].Replace("\"", ""); q.pilihanJawaban[1] = kolom[2].Replace("\"", ""); q.pilihanJawaban[2] = kolom[3].Replace("\"", ""); q.pilihanJawaban[3] = kolom[4].Replace("\"", ""); int.TryParse(kolom[5], out q.kunciJawaban); databaseOnline.daftarSoal.Add(q); } if(quizManager != null && databaseOnline.daftarSoal.Count > 0) { quizManager.SetSoalOnline(databaseOnline); } } }