答题卡片

发布时间 2023-11-17 21:03:19作者: 好人就是我啦

 

 
1
using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEngine.UI; 5 6 //选项列表 7 [System.Serializable] 8 class OptionxTxt 9 { 10 //选项 11 public List<string> optionxTxt; 12 } 13 /// <summary> 14 /// 答题面板管理 15 /// </summary> 16 public class AnswerManager : MonoBehaviour 17 { 18 [SerializeField] List<OptionxTxt> optionxTxt;//选项列表 19 [SerializeField] List<string> topics;//题目 20 [SerializeField] Toggle option_A;//选项 21 [SerializeField] Toggle option_B; 22 [SerializeField] Toggle option_C; 23 [SerializeField] Toggle option_O; 24 [SerializeField]Text TextTopics;//题目显示 25 [SerializeField] Text OKTopicCount;//答对多少道题目 26 [SerializeField]string answer;//答案 27 string resul;//成绩 28 [SerializeField]List<Text> Answer_txt; 29 private void Start() 30 { 31 TextTopics.text = topics[0]; 32 } 33 //返回选择结果 34 private string SelectResult() 35 { 36 string str = ""; 37 if (option_A.isOn) str = "A"; 38 if (option_B.isOn) str = "B"; 39 if (option_C.isOn) str = "C"; 40 return str; 41 } 42 //设置选项 43 private void SetOption(int index) 44 { 45 for (int i = 0; i < Answer_txt.Count; i++) 46 { 47 Answer_txt[i].text = optionxTxt[index].optionxTxt[i]; 48 } 49 } 50 //·µ»Ø´ð¶ÔÌâÄ¿µÄÊýÁ¿ 51 private int GetOkTopicsLength() 52 { 53 int count = 0; 54 if (answer[0] == resul[0]) count++; 55 if (answer[1] == resul[1]) count++; 56 if (answer[2] == resul[2]) count++; 57 return count; 58 } 59 //设置为空选项 60 private void EmptyOption() 61 { 62 option_O.isOn = true; 63 } 64 //-------UIEvent------------ 65 int index = 0; 66 public void NextTopic() 67 { 68 index++; 69 if (option_O.isOn) 70 return; 71 if (index >= topics.Count-1) 72 { 73 resul += SelectResult(); 74 OKTopicCount.text = string.Format("¹恭喜你答对{0}题", GetOkTopicsLength()); 75 return; 76 } 77 if (topics.Count <= 0) 78 return; 79 resul += SelectResult(); 80 EmptyOption(); 81 TextTopics.text = topics[index];//更改题目 82 SetOption(index); 83 } 84 }