- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
175 lines
4.6 KiB
C#
175 lines
4.6 KiB
C#
|
||
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);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|