unityzgy/.svn/pristine/04/04ba3e5a894f25a765713b2bc10c84885e05f230.svn-base
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

66 lines
1.7 KiB
Plaintext

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DevelopEngine;
/// <summary>
/// 服务端登录用户管理类
/// </summary>
public class MasterLoginManager : Singleton<MasterLoginManager>
{
//初始化时注册网络监听消息
public MasterLoginManager()
{
TCPManager.Instance.RegisterConnCloseEvent(StudentConnChanged);
EventCenter.Instance.AddEventListener<string, string>("StudentLoginOn", StudntLoginOn);
EventCenter.Instance.AddEventListener<string>("StudentQuit", StudentQuit);
}
//当前在线的学员
public Dictionary<string, OnlineStudent> onlineStudents = new Dictionary<string, OnlineStudent>();
public bool CheckUserIsLoginon(string ip)
{
foreach (var item in onlineStudents)
{
if (item.Value.user == ip)
return true;
}
return false;
}
//客户端登录成功
private void StudntLoginOn(string ip, string user)
{
if (!onlineStudents.ContainsKey(ip))
{
onlineStudents.Add(ip, new OnlineStudent());
}
onlineStudents[ip].user = user;
onlineStudents[ip].ip = ip;
}
/// <summary>
/// 学员端退出登录
/// </summary>
private void StudentQuit(string ip)
{
if (onlineStudents.ContainsKey(ip))
{
onlineStudents.Remove(ip);
}
}
//客户端网络连接状态变化
private void StudentConnChanged(string IP, bool value)
{
if (!value&& onlineStudents.ContainsKey(IP))//完成登录的用户端断开连接时
{
onlineStudents.Remove(IP);
EventCenter.Instance.EventTrigger<string>("StudentQuit", IP);
}
}
}