QuestionCard.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.Networking;
  6. using UnityEngine.UI;
  7. public class QuestionCard : MonoBehaviour
  8. {
  9. public Text questionText;
  10. public Text answerText;
  11. public string questionString = "";
  12. public string answerString = "";
  13. public string idString = "";
  14. public string categoryString = "";
  15. private Color32 unsafeColor = new Color32(255, 1, 1, 150);
  16. private Color32 safeColor = new Color32(1, 255, 1, 75);
  17. private bool gettingQuestion;
  18. [Serializable]
  19. public class Question {
  20. public string question;
  21. public string answer;
  22. public string id;
  23. public string category;
  24. }
  25. [Serializable]
  26. public class Questions {
  27. public List<Question> questionsList = new List<Question>();
  28. }
  29. public void PrepareQuestion() {
  30. questionText = GameObject.Find("QuestionText").GetComponent<Text>();
  31. answerText = GameObject.Find("AnswerText").GetComponent<Text>();
  32. }
  33. public void PrepareQuestion(string questionTextName, string answerTextName)
  34. {
  35. questionText = GameObject.Find(questionTextName).GetComponent<Text>();
  36. answerText = GameObject.Find(answerTextName).GetComponent<Text>();
  37. }
  38. private IEnumerator GetQuestionData(bool showAnswer)
  39. {
  40. UnityWebRequest www = UnityWebRequest.Get("nordh.xyz/narKampen/dbFiles/dbAccess.php");
  41. yield return www.SendWebRequest();
  42. if (www.isNetworkError || www.isHttpError)
  43. {
  44. Debug.Log(www.error);
  45. } else {
  46. while (!www.isDone) {
  47. yield return null;
  48. }
  49. // Show result
  50. string jsonData = www.downloadHandler.text;
  51. jsonData = "{\"questionsList\" : [ " + jsonData + " ]}";
  52. Questions qe = new Questions();
  53. JsonUtility.FromJsonOverwrite(jsonData, qe);
  54. if (qe.questionsList.Count > 0 && questionText != null )
  55. {
  56. if (showAnswer && answerText != null)
  57. {
  58. answerText.text = qe.questionsList[0].answer;
  59. }
  60. questionText.text = qe.questionsList[0].question;
  61. }
  62. questionString = qe.questionsList[0].question;
  63. answerString = qe.questionsList[0].answer;
  64. idString = qe.questionsList[0].id;
  65. categoryString = qe.questionsList[0].category;
  66. }
  67. }
  68. public void GetQuestion(bool showAnswer)
  69. {
  70. StartCoroutine(GetQuestionData(showAnswer));
  71. }
  72. public void SetQuestionSafe()
  73. {
  74. this.GetComponent<Image>().color = safeColor;
  75. }
  76. public bool IsQuestionSafe() {
  77. if (this.GetComponent<Image>().color == safeColor) {
  78. return true;
  79. }
  80. return false;
  81. }
  82. public void SetQuestionText(string text) {
  83. this.questionText.text = text;
  84. }
  85. public void SetAnswerText(string text) {
  86. this.answerText.text = text;
  87. }
  88. public Text GetQuestionText() {
  89. return this.questionText;
  90. }
  91. public Text GetAnswerText() {
  92. return this.answerText;
  93. }
  94. }