unityzgy/Assets/Scripts/Managers/SingleDataManager.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

175 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DevelopEngine;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using XFramework;
//全局动态数据管理单例类
public class StudentStateManager :Singleton<StudentStateManager>
{
//网络链接状态
private bool networkConnections;
public event UnityAction<bool> NetworkConnectionChangeEvent;
public bool NetworkConnections
{
set
{
networkConnections = value;
if(!networkConnections)
{
SceneSystem.Instance.SetScene(new StudentLoginScene(LoadSceneType.unLogin));
}
NetworkConnectionChangeEvent?.Invoke(networkConnections);
}
get
{
return networkConnections;
}
}
//当前学习状态 训练/考核
private LearnState learnState;
public LearnState LearnState
{
set
{
learnState = value;
}
get
{
return learnState;
}
}
}
/// <summary>
/// 车载物体关系记录管理类
/// </summary>
public class OnboardManager : Singleton<OnboardManager>
{
public XDictionary<string, string> onboardDic;
}
//导调信息管理类 记录确定后不在变化的数据,梳理开始导调时的变化数据 记录导调状态 允许进入导调数据时出现 超出导调数据时销毁
public class AdjustingManager:Singleton<AdjustingManager>
{
//是否导调中
bool adjusting;
public bool Adjusting
{
set
{
adjusting = value;
}
get
{
return adjusting;
}
}
NetAdjustingInitData initData = new NetAdjustingInitData();//记录导调初始化数据
//学员端获取导调数据
public NetAdjustingInitData GetInitData()
{
CardingCarData();
return initData;
}
/// <summary>
/// 注入导航路径信息 首选路线+备选路线
/// </summary>
/// <param name="lines"></param>
public void InjectLinesDataSources(Dictionary<WayType, List<GameObject>> lines)
{
initData.linesDic = new XDictionary<WayType, List<LineTransData>>();
foreach (var item in lines)
{
initData.linesDic.Add(item.Key, new List<LineTransData>());
for (int i = 0; i < item.Value.Count; i++)
{
RectTransform lineTrans = item.Value[i].GetComponent<RectTransform>();
LineTransData lineTransData;
lineTransData.anchorPos = new VectorTwo(lineTrans.anchoredPosition);
lineTransData.sizeX = lineTrans.sizeDelta.x*lineTrans.localScale.x;//获取实际像素值
lineTransData.angleZ = lineTrans.localEulerAngles.z;
initData.linesDic[item.Key].Add(lineTransData);
}
}
}
/// <summary>
/// 注入地图名称
/// </summary>
public void InjectMapName(string mapName)
{
initData.mapName = mapName;
}
//注入初始化突发信息
public void InjectTuFaData(List<TuFaData> tuFaDatas)
{
initData.tufaList = tuFaDatas;
}
//当删除或新增突发事件信息时
public void ChangeTuFaData(TuFaData tuFa,bool isAdd)
{
if (isAdd)
{
initData.tufaList.Add(tuFa);
}
else
{
int index = -1;
for (int i = 0; i < initData.tufaList.Count; i++)
{
if (initData.tufaList[i].ID == tuFa.ID)
index = i;
}
if (index != -1)
{
initData.tufaList.RemoveAt(index);
}
else
{
Debug.Log("导调信息记录类中待移除的突发事件ID不存在");
}
}
}
/// <summary>
/// 梳理车辆信息 和当前角度位置
/// </summary>
void CardingCarData()
{
List<CarCtrl> cars= GameObjectManager.Instance.GetCarList();
initData.carIconInitDatas = new List<AdjustingCarIconData>();
for (int i = 0; i < cars.Count; i++)
{
AdjustingCarIconData carIconData = new AdjustingCarIconData();
Vector2 anchoredpos = cars[i].iconBase_thisIcon.GetComponent<RectTransform>().anchoredPosition;
carIconData.anchorPos = new VectorTwo(anchoredpos);
carIconData.angle = cars[i].iconBase_thisIcon.transform.localEulerAngles.z;
carIconData.carName = cars[i].name;
carIconData.groupingEnum = ((CarIconInstanceCtrl)cars[i].iconBase_thisIcon).GetGroup();
initData.carIconInitDatas.Add(carIconData);
}
}
}