using UnityEngine; using System.Collections; using UnityEngine.UI; using System.IO; using System; using AX.MessageSystem; public abstract class BaseSubItemManager : MonoBehaviour { protected Text QuestionNameText; [HideInInspector] public Toggle QuestionToggle; protected QuestionInfo question; public QuestionInfo Question { set { question = value; QuestionNameText.text = question.Name; QuestionToggle.group = transform.parent.GetComponent(); } get { return question; } } void Awake() { QuestionNameText = transform.Find("Name").GetComponent(); QuestionToggle = transform.Find("Toggle").GetComponent(); //transform.GetComponentInParent(); ButtonInit(); MessageDispatcher.AddListener("ToggleFalse", ToggleFalse); MessageDispatcher.AddListener("ToggleTrue", ToggleTrue); } private void ToggleTrue(IMessage message) { var manager = transform.parent.parent.parent.parent.parent.GetComponent(); if (manager.Exam.ID == (long)message.Sender && question.ID == (long)message.Data) { QuestionToggle.isOn = true; } } void OnDestroy() { MessageDispatcher.RemoveListener("ToggleFalse", ToggleFalse); MessageDispatcher.RemoveListener("ToggleTrue", ToggleTrue); } private void ToggleFalse(IMessage message) { var manager = transform.parent.parent.parent.parent.parent.GetComponent(); if (manager.Exam.ID == (long)message.Sender && question.ID == (long)message.Data) { QuestionToggle.isOn = true; } else { QuestionToggle.isOn = false; } } public abstract void ButtonInit(); public void OnToggleChange() { var manager = transform.parent.parent.parent.parent.parent.GetComponent(); if (GameObject.Find("Canvas").transform.Find("时间轴") && GameObject.Find("Canvas").transform.Find("时间轴").gameObject.activeInHierarchy && ExamInfoHelpClass.loadSceneMode== ExamInfoHelpClass.LoadSceneMode.MakeScore) { manager.CurSelectedTrans.GetComponent().QuestionToggle.isOn = true; MessageDispatcher.SendMessage("Operatinghints", (object)"请先选择保存或者丢弃当前评分"); return; } if (QuestionToggle.isOn) { MessageDispatcher.SendMessage(manager.Exam.ID, "ToggleFalse", (object)question.ID); //当前选中的项 Debug.Log(question.Name); manager.Question = question; manager.CurSelectedTrans = transform; } CheckIfHasAnswer(); } public abstract void CheckIfHasAnswer(); }