using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using XFramework; public class OnlineStudentPrefabCtrl : MonoBehaviour,IGroutIcon { Text text_IP; Text text_State; Text text_Name; Text text_Stage;// Image image_State; Toggle toggle_Select; OnlineStudent studentMsg; IGroutIcon GroupCtrl;//编队标志控制器 public Color[] color_State; //与枚举类顺序保持一致 public int GroupNumber { get { return studentMsg.groupNumber; } set { studentMsg.groupNumber = value; GroupCtrl.GroupNumber = value; } } public bool IsMaster { get { return studentMsg.isMaster; } set { studentMsg.isMaster = value; GroupCtrl.IsMaster = value; } } // Start is called before the first frame update void Awake() { InitComponent(); } void InitComponent() { text_IP = this.transform.Find("Text_ip").GetComponent(); text_State = this.transform.Find("Text_state").GetComponent(); text_Name = this.transform.FindChildTrans("Text_name").GetComponent(); text_Stage = this.transform.Find("Text_stage").GetComponent(); image_State = this.transform.Find("Image_state").GetComponent(); toggle_Select = this.GetComponent(); toggle_Select.onValueChanged.AddListener(OnToggleChange); GroupCtrl = new GroupIconCtrl(this.transform.Find("Image_Group")); } //初始化学员登录状态图标 public void SetMsg(OnlineStudent student) { studentMsg = student; image_State.color = color_State[(int)student.state]; text_State.text = LocalizationManager.Get(((LearnStateText)student.state).ToString()); text_IP.text =$"[{student.ip}]" ; text_Name.text = $"{student.user}"; text_Stage.text = ""; GroupNumber = student.groupNumber; } //学员选中状态发生变化 void OnToggleChange(bool ison) { EventCenter.Instance.EventTrigger("StudentSelectToggle", studentMsg, ison); } /// /// 改变学习状态 /// /// /// 学习状态 public void ChangeState(string currentSubject, LearnState state) { studentMsg.subName = currentSubject; image_State.color = color_State[(int)state]; LocalizationManager.SetFormatted(text_State, "{0}{1}", LocalizationManager.DisplayName(currentSubject), LocalizationManager.Get(((LearnStateText)state).ToString())); studentMsg.state = state; } /// /// 改变该学员所处的科目阶段 /// /// 行军阶段显示行军中 其他阶段不显示 public void ChangeStage(NetSubStage stage) { switch (stage) { case NetSubStage.其他阶段: text_Stage.text = ""; break; case NetSubStage.行军阶段: text_Stage.text = LocalizationManager.Get("(行军中)"); break; default: break; } studentMsg.subStage = stage; } public OnlineStudent GetStudentMsg() { return studentMsg; } private void OnDisable() { toggle_Select.isOn = false; } }