- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
158 lines
5.7 KiB
C#
158 lines
5.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using XFramework;
|
|
|
|
public class StudentWaitingPanel : BasePanel
|
|
{
|
|
const string panelName = "Panel_studentWatingMain";
|
|
//提示字体
|
|
public Text text_Prompt;
|
|
public Text text_doing;
|
|
|
|
public Image image_loadingProgress;
|
|
|
|
public Button button_Exit;//退出登录
|
|
NetSubNameEnum subName;
|
|
//string sceneName;
|
|
string weatherName;
|
|
public StudentWaitingPanel() : base(new UIType(panelName))
|
|
{
|
|
|
|
}
|
|
|
|
|
|
protected override void InitEvent()
|
|
{
|
|
text_Prompt = ActivePanel.Find("Text").GetComponent<Text>();
|
|
text_doing = ActivePanel.FindChildTrans("Text_doing").GetComponent<Text>();
|
|
image_loadingProgress = ActivePanel.FindChildTrans("Image_value").GetComponent<Image>();
|
|
EventCenter.Instance.AddEventListener<NetSubNameEnum,object>("SubjectDown", SetSubjectMsg);
|
|
button_Exit = ActivePanel.FindChildTrans("Button_tuichu")?.GetComponent<Button>();
|
|
button_Exit.onClick.AddListener(ExitLogin);
|
|
button_Exit.interactable = true;//初始化时 允许退出登录
|
|
}
|
|
|
|
//携程更新AB包加载进度条
|
|
protected IEnumerator UpdateLoadProgress()
|
|
{
|
|
while (!AssetBundleHelper.sceneWebRequest.isDone)
|
|
{
|
|
if (AssetBundleHelper.sceneWebRequest.downloadProgress < 0.9f)
|
|
image_loadingProgress.fillAmount = AssetBundleHelper.sceneWebRequest.downloadProgress;
|
|
else
|
|
image_loadingProgress.fillAmount = 1.0f;
|
|
yield return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
////接到场景科目时更新界面
|
|
//public override void Change(object newData)
|
|
//{
|
|
// RecordBase recordBase = newData as RecordBase;
|
|
// SetSubjectMsg(recordBase);
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 场景加载时更新进度条
|
|
///// </summary>
|
|
///// <param name="newData"></param>
|
|
//public override void Change(float newData)
|
|
//{
|
|
// //Debug.Log(newData);
|
|
// image_loadingProgress.transform.parent.gameObject.SetActive(true);
|
|
// text_doing.text = "场景加载中,请稍后...";
|
|
// image_loadingProgress.fillAmount = newData;
|
|
// text_Prompt.text = "";
|
|
//}
|
|
|
|
|
|
object subMsg;//记录接到的科目信息
|
|
|
|
//接到科目消息
|
|
void SetSubjectMsg(NetSubNameEnum subName, object subMsg)
|
|
{
|
|
weatherName = "";
|
|
EventCenter.Instance.RemoveEnvetListener<NetSubNameEnum, object>("SubjectDown", SetSubjectMsg);//接到消息开始跳转时不再接收新消息 只至重新加载本界面
|
|
button_Exit.interactable = false;//接到消息后不允许退出
|
|
this.subName =subName;
|
|
this.subMsg = subMsg;
|
|
LocalizationManager.SetFormatted(text_Prompt, "当前科目为:{0}", LocalizationManager.DisplayName(subName.ToString()));
|
|
int state = 0;//学习状态
|
|
StudentOperateRecorder.Instance.SetSubName(subName);//记录科目初始化纪录类 便于结束时上传
|
|
switch (subName)
|
|
{
|
|
case NetSubNameEnum.编队行军:
|
|
NetSub1Msg netSub1 = subMsg as NetSub1Msg;
|
|
weatherName = netSub1.weather;
|
|
LoadABScene(netSub1.recordClass.TerrainName);
|
|
state = netSub1.state;
|
|
OnboardManager.Instance.onboardDic = netSub1.onboardGO;
|
|
GroupLearnHelper.GroupLearn = null;
|
|
break;
|
|
case NetSubNameEnum.修理所展开: //以上科目需加载ab场景资源
|
|
NetSub2Msg netSub2 = subMsg as NetSub2Msg;
|
|
weatherName = netSub2.weather;
|
|
LoadABScene(netSub2.recordClass.TerrainName);
|
|
state = netSub2.state;
|
|
OnboardManager.Instance.onboardDic = netSub2.onboardGO;
|
|
GroupLearnHelper.GroupLearn = netSub2.groupLearn;
|
|
break;
|
|
case NetSubNameEnum.维修训练:
|
|
NetSub3Msg netSub3 = subMsg as NetSub3Msg;
|
|
//SceneSystem.Instance.sceneParameter = netSub3;
|
|
SceneSystem.Instance.SetScene(new StudentBuildInScene(netSub3));//进入内置场景
|
|
state = 2;//本科目只有考核状态
|
|
GroupLearnHelper.GroupLearn = netSub3.groupLearn;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
StudentStateManager.Instance.LearnState = (LearnState)state;
|
|
}
|
|
|
|
//加载AB包场景
|
|
private void LoadABScene(string sceneName)
|
|
{
|
|
image_loadingProgress.fillAmount = 0;
|
|
image_loadingProgress.transform.parent.gameObject.SetActive(true);
|
|
//this.sceneName = $"{sceneName}Scene";
|
|
Game.StartCoroutine(AssetBundleHelper.LoadSceneAB(StreamingAssetsManager.GetPath("山地"), LoadScene)); //测试修改
|
|
Game.StartCoroutine(UpdateLoadProgress());
|
|
text_doing.text = LocalizationManager.Get("资源加载中,请稍后...");
|
|
}
|
|
|
|
public override void OnStart()
|
|
{
|
|
base.OnStart();
|
|
text_Prompt.text = LocalizationManager.Get("等待教员选择科目...");
|
|
image_loadingProgress.transform.parent.gameObject.SetActive(false);
|
|
StudentStateManager.Instance.LearnState = LearnState.waiting;
|
|
}
|
|
|
|
//ab场景加载完成后自动执行
|
|
private void LoadScene()
|
|
{
|
|
SceneSystem.Instance.SetScene(new StudentABScene("山地", subName, subMsg,weatherName));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 学员退出登录
|
|
/// </summary>
|
|
private void ExitLogin()
|
|
{
|
|
|
|
Pop();
|
|
Push(new LoginPanel());
|
|
User studentUser = new User();
|
|
studentUser.userType = UserType.student;
|
|
TCPManager.Instance.SendNetMsg<User>(studentUser, NetMsgName.StudentQuit);
|
|
}
|
|
|
|
|
|
|
|
}
|