unityzgy/Assets/Scripts/UIScripts/Teacher/OnlineStudentPrefabCtrl.cs
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

123 lines
3.5 KiB
C#

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>();
text_State = this.transform.Find("Text_state").GetComponent<Text>();
text_Name = this.transform.FindChildTrans("Text_name").GetComponent<Text>();
text_Stage = this.transform.Find("Text_stage").GetComponent<Text>();
image_State = this.transform.Find("Image_state").GetComponent<Image>();
toggle_Select = this.GetComponent<Toggle>();
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<OnlineStudent, bool>("StudentSelectToggle", studentMsg, ison);
}
/// <summary>
/// 改变学习状态
/// </summary>
/// <param name="currentSubject"></param>
/// <param name="state"> 学习状态</param>
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;
}
/// <summary>
/// 改变该学员所处的科目阶段
/// </summary>
/// <param name="stage"> 行军阶段显示行军中 其他阶段不显示 </param>
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;
}
}