using UnityEngine; using UnityEngine.UI; using QFramework; using ChivaXR; using System.Collections.Generic; using System.Collections; namespace QFramework { public class ImageAndTextNameSetPanelData : UIPanelData { } public partial class ImageAndTextNameSetPanel : UIPanel { private List m_OptionSetItems = new List(); public string[] capital = new string[] { "A", "B", "C", "D", "E", "F", "G" }; protected override void OnInit(IUIData uiData = null) { mData = uiData as ImageAndTextNameSetPanelData ?? new ImageAndTextNameSetPanelData(); AddOptionBtn.onClick.AddListener(OnAddOptionBtnClick); CloseBtn.onClick.AddListener(OnCloseBtnClick); NextBtn.onClick.AddListener(OnNextBtnClick); PreviousBtn.onClick.AddListener(OnPreviousBtnClick); } protected override void OnOpen(IUIData uiData = null) { OnInitData(); } protected override void OnShow() { } protected override void OnHide() { } protected override void OnClose() { } private void OnInitData() { UIKit.ClosePanel(); UIKit.ClosePanel(); UIKit.ClosePanel(); ClearImageOptionSetItem(); QuestionProxy questionProxy = DAL.Instance.Get(); QuestionInfo questionInfo = questionProxy.GetQuestionInfoByStepId(ProcessManagement.Instance.currentStepID); if (questionInfo.QuestionType != "图文") return; string[] tmpOptions = questionInfo.Options.Split(';'); foreach (var item in tmpOptions) { ImageOptionSetItem optionSetItem = AddImageOptionSetItem(); optionSetItem.InitData(item,questionInfo.Answer); } LayoutRebuilder.ForceRebuildLayoutImmediate(OptionConent.rectTransform); } /// /// 添加按钮点击 /// private void OnAddOptionBtnClick() { ImageOptionSetItem tmpImageOptionSetItem = AddImageOptionSetItem(); LayoutRebuilder.ForceRebuildLayoutImmediate(OptionConent.rectTransform); } private ImageOptionSetItem AddImageOptionSetItem() { GameObject tmpOptionSetItemObj = Instantiate(OptionSetItem.gameObject, OptionConent.transform); ImageOptionSetItem tmpImageOptionSetItem = tmpOptionSetItemObj.GetComponent(); m_OptionSetItems.Add(tmpImageOptionSetItem); tmpOptionSetItemObj.SetActive(true); return tmpImageOptionSetItem; } /// /// 下一步按钮点击 /// private void OnNextBtnClick() { DAL.Instance.Get().SetQuestionInfo(GetPanelQuestionSetInfo()); ProcessManagement.Instance.JumpProcessState(ProcessManagement.Instance.currentStepID + 1); ProcessManagement.Instance.ActiveCurrentProcess(); OnInitData(); } /// /// 上一步按钮点击 /// private void OnPreviousBtnClick() { DAL.Instance.Get().SetQuestionInfo(GetPanelQuestionSetInfo()); ProcessManagement.Instance.JumpProcessState(ProcessManagement.Instance.currentStepID - 1); ProcessManagement.Instance.ActiveCurrentProcess(); OnInitData(); } /// /// 关闭按钮点击 /// private void OnCloseBtnClick() { CloseSelf(); } private void ClearImageOptionSetItem() { for (int i = 0; i < m_OptionSetItems.Count; i++) { Destroy(m_OptionSetItems[i].gameObject); } m_OptionSetItems.Clear(); } IEnumerator ShowPopText(string popText) { PopText.text = popText; yield return new WaitForSeconds(2); PopText.text = string.Empty; } /// /// 获取面板上配置的试题信息 /// /// private QuestionInfo GetPanelQuestionSetInfo() { QuestionInfo questionInfo = new QuestionInfo(); questionInfo.StepId = ProcessManagement.Instance.currentStepID.ToString(); questionInfo.QuestionType = "图文"; string tmpOptionsStr = string.Empty; for (int i = 0; i < m_OptionSetItems.Count; i++) { if (i != 0) tmpOptionsStr += ";"; tmpOptionsStr += capital[i] + "、" + m_OptionSetItems[i].OptionInputField.text + "_" + m_OptionSetItems[i].m_PictureName; } string tmpAnswerStr = string.Empty; for (int i = 0; i < m_OptionSetItems.Count; i++) { if (m_OptionSetItems[i].SelectToggle.isOn) { tmpAnswerStr += capital[i]; } } questionInfo.Options = tmpOptionsStr; questionInfo.Answer = tmpAnswerStr; return questionInfo; } } }