- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
395 lines
8.1 KiB
C#
395 lines
8.1 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
|
||
|
||
//当前学员所处的学习阶段 涉及到导调功能
|
||
public enum NetSubStage
|
||
{
|
||
其他阶段= 0,
|
||
行军阶段 = 1,
|
||
}
|
||
|
||
|
||
public enum NetLoginFailureMsg
|
||
{
|
||
none=0,
|
||
//数据库查询不到登录传入的用户
|
||
noUser = 1,
|
||
//已经登陆
|
||
hasLogin = 2,
|
||
}
|
||
|
||
/// <summary>
|
||
/// 学员上传的答卷
|
||
/// </summary>
|
||
[Serializable]
|
||
public class NetAnswerSheet
|
||
{
|
||
//科目名称 区别当前科目 不同科目加载不同的界面
|
||
public NetSubNameEnum subName;
|
||
public string totleTime;//总用时
|
||
public List<string> errors;//操作描述
|
||
public float score;//评估扣分 为零时代表没有扣分项 其中部分按照
|
||
//扣分因素和按照扣分规则计算出的扣除分数
|
||
public XDictionary<string, float> deductMsg;
|
||
public int transportTime;//转运时间 修理所展开科目使用
|
||
}
|
||
|
||
//科目一网络发送数据类
|
||
[Serializable]
|
||
public class NetSub1Msg
|
||
{
|
||
public bool isContinuity;//与后续科目训练
|
||
public int state;//学习状态 0 等待 1训练 2考核
|
||
public string weather;
|
||
public SubRecordClass recordClass;
|
||
public XDictionary<string, string> onboardGO = new XDictionary<string, string>();//车载装备与车辆关系 key 车辆名称 value 车载装备名称 教员端每次登录后查询后赋值
|
||
}
|
||
|
||
//科目二网络发送数据类
|
||
[Serializable]
|
||
public class NetSub2Msg
|
||
{
|
||
public int state;//训练/考核
|
||
public string weather;
|
||
public Sub2RecordClass recordClass;
|
||
public XDictionary<string, string> onboardGO = new XDictionary<string, string>();//车载装备与车辆关系 key 车辆名称 value 车载装备名称
|
||
public NetLearnGroup groupLearn;//分组训练数据
|
||
}
|
||
[Serializable]
|
||
public class NetSub3Msg
|
||
{
|
||
/// <summary>
|
||
/// 维修案例名称 命名规则为: $"案例{dropDown.value}"
|
||
/// </summary>
|
||
public string caseName;
|
||
public string weather;
|
||
|
||
//案例需要具备的环节 通常由拆装两部分组成
|
||
public List<FixLink> fixLinks;
|
||
public NetLearnGroup groupLearn;//分组训练数据
|
||
}
|
||
|
||
//分组协同训练时分组信息
|
||
[Serializable]
|
||
public class NetLearnGroup
|
||
{
|
||
public int groupNumber;//组号
|
||
public List<SyncUser> allStudents = new List<SyncUser>();//所有组员的IP 包括自身
|
||
public string masterIP;//组长IP
|
||
}
|
||
|
||
//同步展示VRPerson数据
|
||
[Serializable]
|
||
public class SyncUser
|
||
{
|
||
public string ip;
|
||
public string userName;
|
||
|
||
public SyncUser(string ip,string userName)
|
||
{
|
||
this.ip = ip;
|
||
this.userName = userName;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 环节类
|
||
/// </summary>
|
||
[Serializable]
|
||
public class FixLink
|
||
{
|
||
public FixLinkEnum fixLinkEnum;
|
||
|
||
//本环节具备的步骤
|
||
public List<StepData> steps;
|
||
|
||
//步骤规划完成后需要回答的问题 可以为空
|
||
public List<Question> questions;
|
||
}
|
||
|
||
//步骤数据
|
||
[Serializable]
|
||
public class StepData
|
||
{
|
||
//当前步骤的ID
|
||
public int id;
|
||
//当前步骤的描述
|
||
public string describe;
|
||
|
||
//当前步骤的前置步骤 为空时代表不需要前置步骤
|
||
public int [] preIDs;
|
||
|
||
public StepData()
|
||
{
|
||
|
||
}
|
||
|
||
public StepData(int id,string des,int [] pre)
|
||
{
|
||
this.id = id;
|
||
this.describe = des;
|
||
this.preIDs = pre;
|
||
}
|
||
}
|
||
|
||
//维修环节枚举
|
||
public enum FixLinkEnum
|
||
{
|
||
拆卸=1,
|
||
安装=2,
|
||
}
|
||
|
||
//问题类
|
||
[Serializable]
|
||
public class Question
|
||
{
|
||
/// <summary>
|
||
/// 问题 不能为空
|
||
/// </summary>
|
||
public string question;
|
||
/// <summary>
|
||
/// 选项 至少两个 key 选项标题例如 a b c d,Value选项描述
|
||
/// </summary>
|
||
public XDictionary<string, string> options;
|
||
|
||
/// <summary>
|
||
/// 正确选项的key
|
||
/// </summary>
|
||
public string rightOptionsKey;
|
||
|
||
public Question()
|
||
{
|
||
|
||
}
|
||
|
||
public Question( string question,XDictionary<string,string> options,string rightOptionsKey)
|
||
{
|
||
this.question = question;
|
||
this.options = options;
|
||
this.rightOptionsKey = rightOptionsKey;
|
||
}
|
||
}
|
||
|
||
//科目名称
|
||
public enum NetSubNameEnum
|
||
{
|
||
编队行军=1,
|
||
修理所展开=2,
|
||
维修训练=3,
|
||
}
|
||
|
||
//发送科目类型
|
||
public enum SubType
|
||
{
|
||
train,//训练
|
||
exam,//考核
|
||
}
|
||
|
||
//网络消息标识枚举
|
||
public enum NetMsgName
|
||
{
|
||
Login,//登陆
|
||
|
||
LoginResult,//登录结果
|
||
/// <summary>
|
||
/// 科目
|
||
/// </summary>
|
||
Subject,
|
||
/// <summary>
|
||
/// 结束命令
|
||
/// </summary>
|
||
EndCommand,
|
||
|
||
/// <summary>
|
||
/// 发向学员的开始/结束导调指令
|
||
/// </summary>
|
||
AdjustingToStu,
|
||
|
||
/// <summary>
|
||
/// 导调初始化界面信息
|
||
/// </summary>
|
||
AdjustingInitData,
|
||
|
||
/// <summary>
|
||
/// 导调中 发送增加/减少突发事件命令
|
||
/// </summary>
|
||
AddOrRmoveTufa,
|
||
|
||
/// <summary>
|
||
/// 导调中发送遇到突发事件处理信息
|
||
/// </summary>
|
||
TuFaEvent,
|
||
|
||
/// <summary>
|
||
/// 导调同步消息
|
||
/// </summary>
|
||
Syn,
|
||
|
||
//学员完成一个科目上传的答卷
|
||
AnswerSheet,
|
||
|
||
/// <summary>
|
||
/// 教员可返回最终结果
|
||
/// </summary>
|
||
AppraiseResult,
|
||
|
||
/// <summary>
|
||
/// 学员退出
|
||
/// </summary>
|
||
StudentQuit,
|
||
|
||
/// <summary>
|
||
/// 改变学员科目所处阶段
|
||
/// </summary>
|
||
ChangeStudentStage,
|
||
|
||
/// <summary>
|
||
/// 学员在科目结束后主动关闭结果显示面板
|
||
/// </summary>
|
||
StuCloseResPanel,
|
||
|
||
/// <summary>
|
||
/// 学员发送当前学习状态
|
||
/// </summary>
|
||
StuChangeState,
|
||
|
||
|
||
/// <summary>
|
||
/// 组员掉线
|
||
/// </summary>
|
||
GroupUserBreak,
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 导调初始化信息类
|
||
/// </summary>
|
||
[Serializable]
|
||
public class NetAdjustingInitData
|
||
{
|
||
public string mapName;
|
||
public XDictionary<WayType, List<LineTransData>> linesDic;//路径信息 key: 路径类型 value:记录路径所有的点线路
|
||
public List<TuFaData> tufaList;
|
||
public List<AdjustingCarIconData> carIconInitDatas;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导调突发事件类
|
||
/// </summary>
|
||
[Serializable]
|
||
public class AdjustingTuFaData
|
||
{
|
||
public bool value;//true 增加事件 false减少事件
|
||
public TuFaData tuFaData;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 组成路径的线段同步信息
|
||
/// </summary>
|
||
[Serializable]
|
||
public struct LineTransData
|
||
{
|
||
public VectorTwo anchorPos;
|
||
public float sizeX;//实际像素值
|
||
public float angleZ;
|
||
}
|
||
|
||
[Serializable]
|
||
public struct VectorThree
|
||
{
|
||
public float x;
|
||
public float y;
|
||
public float z;
|
||
|
||
public VectorThree(float x, float y, float z)
|
||
{
|
||
this.x = x;
|
||
this.y = y;
|
||
this.z = z;
|
||
}
|
||
|
||
public VectorThree(Vector3 vector3)
|
||
{
|
||
x = vector3.x;
|
||
y = vector3.y;
|
||
z = vector3.z;
|
||
}
|
||
|
||
public Vector3 GetVector3()
|
||
{
|
||
return new Vector3(x, y, z);
|
||
}
|
||
}
|
||
|
||
[Serializable]
|
||
public struct VectorTwo
|
||
{
|
||
public float x;
|
||
public float y;
|
||
|
||
public VectorTwo(float x, float y)
|
||
{
|
||
this.x = x;
|
||
this.y = y;
|
||
}
|
||
public VectorTwo(Vector2 vector2)
|
||
{
|
||
x = vector2.x;
|
||
y = vector2.y;
|
||
}
|
||
|
||
public Vector2 GetVector2()
|
||
{
|
||
return new Vector2(x, y);
|
||
}
|
||
}
|
||
|
||
|
||
//教员端导调时车辆图标信息同步类 不同步车载数据
|
||
[Serializable]
|
||
public class AdjustingCarIconData
|
||
{
|
||
public string carName;
|
||
public FormationGroupingEnum groupingEnum;//当前分组
|
||
public VectorTwo anchorPos;//位置信息
|
||
public float angle;//角度信息
|
||
}
|
||
|
||
/// <summary>
|
||
/// 学员遇到突发事件处理消息
|
||
/// </summary>
|
||
[Serializable]
|
||
public class NetTuFaHandleMsg
|
||
{
|
||
//消息类型
|
||
public TuFaMsgType msgType;
|
||
//消息内容
|
||
public string msg;
|
||
}
|
||
|
||
//突发事件处理消息类型
|
||
[Serializable]
|
||
public enum TuFaMsgType
|
||
{
|
||
trigger,//触发突发事件
|
||
handleRight,//正确处理事件
|
||
handleWrong,//错误处理事件
|
||
}
|
||
|
||
/// <summary>
|
||
/// 教师发送的评估结果类
|
||
/// </summary>
|
||
[Serializable]
|
||
public class NetAppraiseData
|
||
{
|
||
public bool appraised;//是否生成了评价
|
||
public string appraiseLevel;//评价等级 优良中差
|
||
public string remark;//主观评价 修理所展开使用
|
||
}
|
||
|
||
|