QuestionCard.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. [Serializable]
  18. public class Question {
  19. public string question;
  20. public string answer;
  21. public string id;
  22. public string category;
  23. }
  24. [Serializable]
  25. public class Questions {
  26. public List<Question> questionsList = new List<Question>();
  27. }
  28. // Start is called before the first frame update
  29. void Start()
  30. {
  31. }
  32. public QuestionCard() {
  33. }
  34. public QuestionCard(string answer, string question) {
  35. answerText.text = answer;
  36. questionText.text = question;
  37. }
  38. public void PrepareQuestion() {
  39. questionText = GameObject.Find("QuestionText").GetComponent<Text>();
  40. answerText = GameObject.Find("AnswerText").GetComponent<Text>();
  41. }
  42. public void PrepareQuestion(string questionTextName, string answerTextName)
  43. {
  44. questionText = GameObject.Find(questionTextName).GetComponent<Text>();
  45. answerText = GameObject.Find(answerTextName).GetComponent<Text>();
  46. }
  47. private IEnumerator GetQuestionData(bool showAnswer)
  48. {
  49. UnityWebRequest www = UnityWebRequest.Get("nordh.xyz/narKampen/dbFiles/dbAccess.php");
  50. yield return www.SendWebRequest();
  51. if (www.isNetworkError || www.isHttpError)
  52. {
  53. Debug.Log(www.error);
  54. } else
  55. {
  56. // Show result
  57. string jsonData = www.downloadHandler.text;
  58. jsonData = "{\"questionsList\" : [ " + jsonData + " ]}";
  59. Questions qe = new Questions();
  60. JsonUtility.FromJsonOverwrite(jsonData, qe);
  61. if (qe.questionsList.Count > 0 && questionText != null )
  62. {
  63. if (showAnswer && answerText != null)
  64. {
  65. answerText.text = qe.questionsList[0].answer;
  66. }
  67. questionText.text = qe.questionsList[0].question;
  68. }
  69. questionString = qe.questionsList[0].question;
  70. answerString = qe.questionsList[0].answer;
  71. idString = qe.questionsList[0].id;
  72. categoryString = qe.questionsList[0].category;
  73. }
  74. }
  75. public void GetQuestion(bool showAnswer)
  76. {
  77. StartCoroutine(GetQuestionData(showAnswer));
  78. }
  79. public void SetQuestionSafe()
  80. {
  81. this.GetComponent<Image>().color = safeColor;
  82. }
  83. public bool IsQuestionSafe() {
  84. if (this.GetComponent<Image>().color == safeColor) {
  85. return true;
  86. }
  87. return false;
  88. }
  89. public void SetQuestionText(string text) {
  90. this.questionText.text = text;
  91. }
  92. public void SetAnswerText(string text) {
  93. this.answerText.text = text;
  94. }
  95. public Text GetQuestionText() {
  96. return this.questionText;
  97. }
  98. public Text GetAnswerText() {
  99. return this.answerText;
  100. }
  101. }