145 lines
4.9 KiB
C#
145 lines
4.9 KiB
C#
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine.UI;
|
|
|
|
namespace ZC
|
|
{
|
|
[UIType(UIType.AnswerUI)]
|
|
public class AnswerUI : UIBase
|
|
{
|
|
private TMP_Text txt_Title;
|
|
private TMP_Text txt_TrueOption;
|
|
private TMP_Text txt_JXContent;
|
|
private TMP_Text txt_Label0;
|
|
private TMP_Text txt_Label1;
|
|
private TMP_Text txt_Label2;
|
|
private TMP_Text txt_Label3;
|
|
private Toggle tog_Option0;
|
|
private Toggle tog_Option1;
|
|
private Toggle tog_Option2;
|
|
private Toggle tog_Option3;
|
|
private Button btn_Last;
|
|
private Button btn_Close;
|
|
private Button btn_Next;
|
|
|
|
private QuestionBankData _bankData;
|
|
|
|
private int currentIndex = 0;
|
|
|
|
public override void Init()
|
|
{
|
|
base.Init();
|
|
txt_Title = _uiGameObjectBinding.GetValue("txt_Title").GetComponent<TMP_Text>();
|
|
txt_TrueOption = _uiGameObjectBinding.GetValue("txt_TrueOption").GetComponent<TMP_Text>();
|
|
txt_JXContent = _uiGameObjectBinding.GetValue("txt_JXContent").GetComponent<TMP_Text>();
|
|
txt_Label0 = _uiGameObjectBinding.GetValue("txt_Label0").GetComponent<TMP_Text>();
|
|
txt_Label1 = _uiGameObjectBinding.GetValue("txt_Label1").GetComponent<TMP_Text>();
|
|
txt_Label2 = _uiGameObjectBinding.GetValue("txt_Label2").GetComponent<TMP_Text>();
|
|
txt_Label3 = _uiGameObjectBinding.GetValue("txt_Label3").GetComponent<TMP_Text>();
|
|
tog_Option0 = _uiGameObjectBinding.GetValue("tog_Option0").GetComponent<Toggle>();
|
|
tog_Option1 = _uiGameObjectBinding.GetValue("tog_Option1").GetComponent<Toggle>();
|
|
tog_Option2 = _uiGameObjectBinding.GetValue("tog_Option2").GetComponent<Toggle>();
|
|
tog_Option3 = _uiGameObjectBinding.GetValue("tog_Option3").GetComponent<Toggle>();
|
|
btn_Last = _uiGameObjectBinding.GetValue("btn_Last").GetComponent<Button>();
|
|
btn_Close = _uiGameObjectBinding.GetValue("btn_Close").GetComponent<Button>();
|
|
btn_Next = _uiGameObjectBinding.GetValue("btn_Next").GetComponent<Button>();
|
|
|
|
btn_Last.onClick.AddListener(ClickLastButton);
|
|
btn_Close.onClick.AddListener(ClickCloseButton);
|
|
btn_Next.onClick.AddListener(ClickNextButton);
|
|
|
|
// 读取题库
|
|
_bankData = new QuestionBankData();
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
base.Dispose();
|
|
btn_Last.onClick.RemoveListener(ClickLastButton);
|
|
btn_Close.onClick.RemoveListener(ClickCloseButton);
|
|
btn_Next.onClick.RemoveListener(ClickNextButton);
|
|
}
|
|
|
|
private void ClickNextButton()
|
|
{
|
|
currentIndex++;
|
|
SetUIContent(_bankData.AnswerDatas[currentIndex]);
|
|
}
|
|
|
|
private void ClickCloseButton()
|
|
{
|
|
throw new System.NotImplementedException();
|
|
}
|
|
|
|
private void ClickLastButton()
|
|
{
|
|
currentIndex--;
|
|
SetUIContent(_bankData.AnswerDatas[currentIndex]);
|
|
}
|
|
|
|
public void SetQuestionBankData(QuestionBankData bankData)
|
|
{
|
|
this._bankData = bankData;
|
|
}
|
|
|
|
private void InitAnswer()
|
|
{
|
|
currentIndex = 0;
|
|
SetUIContent(_bankData.AnswerDatas[currentIndex]);
|
|
}
|
|
|
|
private void SetUIContent(AnswerData data)
|
|
{
|
|
currentIndex = data.index;
|
|
txt_Title.text = data.title;
|
|
txt_Label0.text = data.options[0].content;
|
|
txt_Label1.text = data.options[1].content;
|
|
txt_Label2.text = data.options[2].content;
|
|
txt_Label3.text = data.options[3].content;
|
|
txt_TrueOption.text = data.trueOption;
|
|
txt_JXContent.text = data.analyze;
|
|
|
|
tog_Option0.isOn = false;
|
|
tog_Option1.isOn = false;
|
|
tog_Option2.isOn = false;
|
|
tog_Option3.isOn = false;
|
|
|
|
if (currentIndex >= _bankData.AnswerDatas.Count - 1) // 最后一题
|
|
{
|
|
btn_Next.gameObject.SetActive(false);
|
|
// 提交按钮显示
|
|
}
|
|
else if (currentIndex <= 0) // 第一题
|
|
{
|
|
btn_Last.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
btn_Last.gameObject.SetActive(true);
|
|
btn_Next.gameObject.SetActive(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
public class QuestionBankData
|
|
{
|
|
public List<AnswerData> AnswerDatas = new List<AnswerData>();
|
|
}
|
|
|
|
public class AnswerData
|
|
{
|
|
public int index;
|
|
public string title;
|
|
public List<OptionData> options = new List<OptionData>();
|
|
public string trueOption;
|
|
public string analyze;
|
|
}
|
|
|
|
public class OptionData
|
|
{
|
|
public string content;
|
|
|
|
public bool isTrue;
|
|
// public string analyze;
|
|
}
|
|
} |