123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526 |
- using System.Collections;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using DG.Tweening;
- using GameFramework;
- using GameFramework.Event;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- using UnityEngine.Serialization;
- using UnityEngine.UI;
- using UnityGameFramework.Runtime;
- using UnityAsync;
- using WaitUntil = UnityAsync.WaitUntil;
- public class NetTrainStudyForm : UIFormLogic
- {
- private GameObject _trainPanel;
- private GameObject _learnPanel;
- private GameObject _faultPanel;
- private GameObject _trainDoneTips;
- private GameObject _faultDoneTips;
- private Button _reStartButton;
- public Sprite[] learnModelButtonImg;
- public Sprite[] trainModelButtonImg;
- public Sprite[] bugModelButtonImg;
- private Button _learnButton;
- private Button _trainButton;
- private Button _faultButton;
- private IT_TrainModelType _currentType;
- private GameObject messagePanel;
- private Text nameText;
- private Text messageText;
- //todo 网络认知的文字
- private const string LYQMessage =
- "路由器是网络设备,负责将数据包从源设备转发到目标设备。它使用IP地址来确定数据的路径,实现不同网络之间的连接,支持网络间的通信和资源共享。路由器也能提供网络安全功能,如防火墙和虚拟专用网络(VPN)。";
- private const string JHJMessage =
- "交换机是局域网内的核心设备,通过学习MAC地址建立设备间通信表,根据表项快速转发数据帧,提供高性能和低延迟的内部通信。它有助于构建大规模、高效的企业网络。";
- private const string FWQMessage =
- "浪潮服务器是浪潮集团生产的服务器产品,具有卓越的性能和可靠性。这些服务器适用于各种场景,包括数据中心、云计算、企业IT等,满足不同规模和需求的用户。浪潮服务器支持虚拟化、大数据处理和高性能计算等多种应用。";
- bool haveFixed = false;
- private GameObject tarinList;
- private Button trainB1;
- private Button trainB2;
- private Button trainB3;
- private Button trainB4;
- private GameObject faultList;
- private Button faultB1;
- private Button faultB2;
- //$$$
- public Button[] faultButtons;
- public GameObject faultChoicePanel;
- public GameObject[] faultChoices;
- public GameObject[] netWordListFaultTips;
- public GameObject[] lightModelFaultTips;
- private RectTransform faultTools;
- private GameObject faultSelectButtons;
- private Net_FaultToolList faultToolList;
- private Button lyqButton;
- private Button jhjButton;
- private Button wxButton;
- private Button wkButton;
- protected override void OnInit(object userData)
- {
- base.OnInit(userData);
- _trainPanel = this.transform.Find("trainPanel").gameObject;
- _learnPanel = this.transform.Find("learnPanel").gameObject;
- _faultPanel = this.transform.Find("faultPanel").gameObject;
- InItUiComponent();
- InitFaultTips();
- }
- protected override void OnOpen(object userData)
- {
- base.OnOpen(userData);
- _trainDoneTips.SetActive(false);
- GameMain.Event.Subscribe(ReStart_IT_TrainStudyEvent.EventId, ReSetTrainUI);
- GameMain.Event.Subscribe(IT_TrainStudyDoneEvent.EventId, OnIT_TrainStudyDone);
- GameMain.Event.Subscribe(Net_TrainStudyShowTargetInfoEvent.EventId, ChangeTargetMessage);
- GameMain.Event.Subscribe(Net_FaultNextEvent.EventId, OnGetNet_FaultNext);
- _learnPanel.SetActive(true);
- _trainPanel.SetActive(false);
- _learnButton.image.sprite = learnModelButtonImg[1];
- _trainButton.image.sprite = trainModelButtonImg[0];
- _faultButton.image.sprite = bugModelButtonImg[0];
- ChangeToLearn(true, 0.1f);
- tarinList.SetActive(false);
- //_currentType = IT_TrainModelType.learn;
- //GameMain.Event.Fire(this,IT_StartLearnTargetInfoEvent.Create());
- }
- protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
- {
- base.OnUpdate(elapseSeconds, realElapseSeconds);
- }
- private void InItUiComponent()
- {
- _trainDoneTips = _trainPanel.transform.Find("DoneTips").gameObject;
- _trainDoneTips.SetActive(false);
- messagePanel = _learnPanel.transform.Find("messagePanel").gameObject;
- messagePanel.SetActive(false);
- nameText = messagePanel.transform.Find("nameText").GetComponent<Text>();
- messageText = messagePanel.transform.Find("messageText").GetComponent<Text>();
- _faultDoneTips = _faultPanel.transform.Find("DoneTips").gameObject;
- _faultDoneTips.SetActive(false);
- _faultPanel.SetActive(false);
- _reStartButton = _trainPanel.transform.Find("TrainButton/Verlist/reStartButton").GetComponent<Button>();
- _reStartButton.onClick.AddListener(() => { GameMain.Event.Fire(this, ReStart_IT_TrainStudyEvent.Create()); });
- _learnButton = this.transform.Find("Navi/B1").GetComponent<Button>();
- _learnButton.onClick.AddListener(() => { ChangeToLearn(true, 0.1f); });
- _trainButton = this.transform.Find("Navi/B2").GetComponent<Button>();
- _trainButton.onClick.AddListener(ChangeToTrain);
- _faultButton = this.transform.Find("Navi/B3").GetComponent<Button>();
- _faultButton.onClick.AddListener(() => { ChangeToFault(); });
- tarinList = this.transform.Find("Navi/trainlist").gameObject;
- trainB1 = this.transform.Find("Navi/trainlist/B1").GetComponent<Button>();
- trainB2 = this.transform.Find("Navi/trainlist/B2").GetComponent<Button>();
- trainB3 = this.transform.Find("Navi/trainlist/B3").GetComponent<Button>();
- trainB4 = this.transform.Find("Navi/trainlist/B4").GetComponent<Button>();
- trainB1.onClick.AddListener(async () =>
- {
- if (SceneManager.GetActiveScene().name != "TrainStudy2_1")
- SceneManager.LoadScene("TrainStudy2_1");
- await new WaitUntil(() => { return SceneManager.GetActiveScene() == SceneManager.GetSceneByName("TrainStudy2_1"); });
- GameMain.Event.Fire(this, Net_TrainAniEvent.Create(1));
- tarinList.SetActive(false);
- });
- trainB2.onClick.AddListener(async () =>
- {
- if (SceneManager.GetActiveScene().name != "TrainStudy2_1")
- SceneManager.LoadScene("TrainStudy2_1");
- await new WaitUntil(() => { return SceneManager.GetActiveScene() == SceneManager.GetSceneByName("TrainStudy2_1"); });
- GameMain.Event.Fire(this, Net_TrainAniEvent.Create(2));
- tarinList.SetActive(false);
- });
- trainB3.onClick.AddListener(async () =>
- {
- if (SceneManager.GetActiveScene().name != "TrainStudy2_2")
- SceneManager.LoadScene("TrainStudy2_2");
- await new WaitUntil(() => { return SceneManager.GetActiveScene() == SceneManager.GetSceneByName("TrainStudy2_2"); });
- GameMain.Event.Fire(this, Net_TrainAniEvent.Create(1));
- tarinList.SetActive(false);
- });
- trainB4.onClick.AddListener(async () =>
- {
- if (SceneManager.GetActiveScene().name != "TrainStudy2_2")
- SceneManager.LoadScene("TrainStudy2_2");
- await new WaitUntil(() => { return SceneManager.GetActiveScene() == SceneManager.GetSceneByName("TrainStudy2_2"); });
- GameMain.Event.Fire(this, Net_TrainAniEvent.Create(2));
- tarinList.SetActive(false);
- });
- tarinList.SetActive(false);
- faultList = this.transform.Find("Navi/faultlist").gameObject;
- faultB1 = this.transform.Find("Navi/faultlist/B1").GetComponent<Button>();
- faultB2 = this.transform.Find("Navi/faultlist/B2").GetComponent<Button>();
- faultB1.onClick.AddListener(() =>
- {
- foreach (var objs in faultChoices)
- {
- objs.SetActive(false);
- }
- faultChoicePanel.SetActive(false);
- GameMain.Event.Fire(this, FaultChoicesChangeEvent.Create(-1));
- GameMain.Event.Fire(this, Net_FaultStartEvent.Create(Net_FaultType.netWorkCard));
- faultList.SetActive(false);
- });
- faultB2.onClick.AddListener(() =>
- {
- foreach (var objs in faultChoices)
- {
- objs.SetActive(false);
- }
- faultChoicePanel.SetActive(false);
- GameMain.Event.Fire(this, FaultChoicesChangeEvent.Create(-1));
- GameMain.Event.Fire(this, Net_FaultStartEvent.Create(Net_FaultType.lightModel));
- faultList.SetActive(false);
- });
- //$$$------------------------
- faultChoicePanel = this.transform.Find($"faultChoicePanel").gameObject;
- faultChoices = new GameObject[8];
- for (int i = 0; i < 8; i++)
- {
- faultChoices[i] = this.transform.Find($"faultChoicePanel/BG/Quest_{i + 1}").gameObject;
- faultChoices[i].SetActive(false);
- }
- faultChoicePanel.SetActive(false);
- faultButtons = new Button[8];
- for (int i = 0; i < 8; i++)
- {
- faultButtons[i] = this.transform.Find($"Navi/faultlist/B{i + 3}").GetComponent<Button>();
- }
- faultButtons[0].onClick.AddListener(() => { faultChoicesClick(0); });
- faultButtons[1].onClick.AddListener(() => { faultChoicesClick(1); });
- faultButtons[2].onClick.AddListener(() => { faultChoicesClick(2); });
- faultButtons[3].onClick.AddListener(() => { faultChoicesClick(3); });
- faultButtons[4].onClick.AddListener(() => { faultChoicesClick(4); });
- faultButtons[5].onClick.AddListener(() => { faultChoicesClick(5); });
- faultButtons[6].onClick.AddListener(() => { faultChoicesClick(6); });
- faultButtons[7].onClick.AddListener(() => { faultChoicesClick(7); });
- faultChoicePanel.SetActive(false);
- //$$$------------------------
- faultList.SetActive(false);
- }
- //$$$------------------------
- private void faultChoicesClick(int index)
- {
- foreach (var obj in netWordListFaultTips)
- {
- obj.SetActive(false);
- }
- foreach (var obj in lightModelFaultTips)
- {
- obj.SetActive(false);
- }
- faultSelectButtons.SetActive(false);
- foreach (var objs in faultChoices)
- {
- objs.SetActive(false);
- }
- GameMain.Event.Fire(this, FaultChoicesChangeEvent.Create(index));
- faultChoices[index].SetActive(true);
- faultChoicePanel.SetActive(true);
- faultList.SetActive(false);
- }
- private void InitFaultTips()
- {
- netWordListFaultTips = new GameObject[7];
- for (int i = 0; i < netWordListFaultTips.Length; i++)
- {
- netWordListFaultTips[i] = _faultPanel.transform.Find($"Doc/BG/Step1_{i}").gameObject;
- netWordListFaultTips[i].SetActive(false);
- }
- lightModelFaultTips = new GameObject[6];
- for (int i = 0; i < lightModelFaultTips.Length; i++)
- {
- lightModelFaultTips[i] = _faultPanel.transform.Find($"Doc/BG/Step2_{i}").gameObject;
- lightModelFaultTips[i].SetActive(false);
- }
- faultTools = _faultPanel.transform.Find($"Tools").GetComponent<RectTransform>();
- faultTools.localPosition = new Vector3(1120, 0, 0);
- faultSelectButtons = _faultPanel.transform.Find($"FixButton").gameObject;
- lyqButton = _faultPanel.transform.Find("FixButton/Verlist/lyqButton").GetComponent<Button>();
- jhjButton = _faultPanel.transform.Find("FixButton/Verlist/jhjButton").GetComponent<Button>();
- wxButton = _faultPanel.transform.Find("FixButton/Verlist/wxButton").GetComponent<Button>();
- wkButton = _faultPanel.transform.Find("FixButton/Verlist/wkButton").GetComponent<Button>();
- lyqButton.onClick.AddListener(() => { GameMain.Event.Fire(this, Net_SelectFaultItemEvent.Create(Net_FaultType.router)); });
- jhjButton.onClick.AddListener(() => { GameMain.Event.Fire(this, Net_SelectFaultItemEvent.Create(Net_FaultType.exchangeBoard)); });
- wxButton.onClick.AddListener(() => { GameMain.Event.Fire(this, Net_SelectFaultItemEvent.Create(Net_FaultType.lightModel)); });
- wkButton.onClick.AddListener(() => { GameMain.Event.Fire(this, Net_SelectFaultItemEvent.Create(Net_FaultType.netWorkCard)); });
- faultSelectButtons.SetActive(false);
- faultToolList = faultTools.GetComponent<Net_FaultToolList>();
- }
- protected override void OnClose(bool isShutdown, object userData)
- {
- base.OnClose(isShutdown, userData);
- GameMain.Event.Unsubscribe(ReStart_IT_TrainStudyEvent.EventId, ReSetTrainUI);
- GameMain.Event.Unsubscribe(IT_TrainStudyDoneEvent.EventId, OnIT_TrainStudyDone);
- GameMain.Event.Unsubscribe(Net_TrainStudyShowTargetInfoEvent.EventId, ChangeTargetMessage);
- GameMain.Event.Unsubscribe(Net_FaultNextEvent.EventId, OnGetNet_FaultNext);
- }
- private async void ChangeToLearn(bool force = false, float delayTime = 0.0f)
- {
- tarinList.SetActive(false);
- _faultDoneTips.SetActive(false);
- faultList.SetActive(false);
- if (_currentType == IT_TrainModelType.learn && !force)
- return;
- if (SceneManager.GetActiveScene().name != "TrainStudy2")
- SceneManager.LoadScene("TrainStudy2");
- tarinList.SetActive(false);
- await Task.Delay((int)(delayTime * 1000));
- GameMain.Event.Fire(this, Net_TrainStudyStateEvent.Create(false));
- GameMain.Event.Fire(this, Net_StartLearnTargetInfoEvent.Create());
- _currentType = IT_TrainModelType.learn;
- _learnButton.image.sprite = learnModelButtonImg[1];
- _trainButton.image.sprite = trainModelButtonImg[0];
- _faultButton.image.sprite = bugModelButtonImg[0];
- _trainPanel.SetActive(false);
- _learnPanel.SetActive(true);
- _faultPanel.SetActive(false);
- tarinList.SetActive(false);
- //$$$------------------------
- faultChoicePanel.SetActive(false);
- }
- private void ChangeToTrain()
- {
- faultList.SetActive(false);
- tarinList.SetActive(true);
-
- if (_currentType == IT_TrainModelType.train)
- return;
- _learnPanel.SetActive(false);
- _faultPanel.SetActive(false);
- _learnButton.image.sprite = learnModelButtonImg[0];
- _trainButton.image.sprite = trainModelButtonImg[1];
- _faultButton.image.sprite = bugModelButtonImg[0];
- _currentType = IT_TrainModelType.train;
- if (SceneManager.GetActiveScene().name != "TrainStudy2_1")
- SceneManager.LoadScene("TrainStudy2_1");
- //_trainPanel.SetActive(true);
- //$$$------------------------
- faultChoicePanel.SetActive(false);
- }
- private void ChangeToFault(bool force = false)
- {
- tarinList.SetActive(false);
- faultList.SetActive(true);
- if (_currentType == IT_TrainModelType.fault && !force)
- return;
- GameMain.Event.Fire(this, Net_TrainStudyStateEvent.Create(false));
- GameMain.Event.Fire(this, Net_StartLearnTargetInfoEvent.Create(false));
- _learnButton.image.sprite = learnModelButtonImg[0];
- _trainButton.image.sprite = trainModelButtonImg[0];
- _faultButton.image.sprite = bugModelButtonImg[1];
- _faultPanel.SetActive(true);
- _trainPanel.SetActive(false);
- _learnPanel.SetActive(false);
- _currentType = IT_TrainModelType.fault;
- _faultPanel.transform.Find($"Doc").gameObject.SetActive(false);
- _faultPanel.transform.Find($"FixButton").gameObject.SetActive(false);
- _faultPanel.transform.Find($"Tools").GetComponent<RectTransform>().localPosition = new Vector3(1120, 0, 0);
- if (SceneManager.GetActiveScene().name != "TrainStudy2_3" || force)
- SceneManager.LoadScene("TrainStudy2_3");
- //$$$------------------------
- faultChoicePanel.SetActive(false);
- }
- private void ChangeTargetMessage(object sender, GameEventArgs e)
- {
- Net_TrainStudyShowTargetInfoEvent args = (Net_TrainStudyShowTargetInfoEvent)e;
- switch (args._Type)
- {
- case NetHardWaryType.LYQ:
- nameText.text = "路由器";
- messageText.text = LYQMessage;
- if (!messagePanel.activeSelf)
- {
- messagePanel.SetActive(true);
- }
- break;
- case NetHardWaryType.JHJ:
- nameText.text = "交换机";
- messageText.text = JHJMessage;
- if (!messagePanel.activeSelf)
- {
- messagePanel.SetActive(true);
- }
- break;
- case NetHardWaryType.FWQ:
- nameText.text = "浪潮服务器";
- messageText.text = FWQMessage;
- if (!messagePanel.activeSelf)
- {
- messagePanel.SetActive(true);
- }
- break;
- case NetHardWaryType.none:
- messagePanel.SetActive(false);
- break;
- }
- }
- private void ReSetTrainUI(object sender, GameEventArgs e)
- {
- _trainDoneTips.SetActive(false);
- }
- private void OnIT_TrainStudyDone(object sender, GameEventArgs e)
- {
- _faultDoneTips.SetActive(true);
- ChangeToFault(true);
- //GameMain.UI.OpenUIForm("Tips", "Pop");
- }
- private void OnGetNet_FaultNext(object sender, GameEventArgs e)
- {
- Net_FaultNextEvent args = (Net_FaultNextEvent)e;
- _faultPanel.transform.Find($"Doc").gameObject.SetActive(true);
- switch (args.FaultType)
- {
- case Net_FaultType.netWorkCard:
- for (int i = 0; i < netWordListFaultTips.Length; i++)
- {
- netWordListFaultTips[i].SetActive(false);
- }
- netWordListFaultTips[args.stepIndex].SetActive(true);
- if (args.stepIndex == 0)
- {
- for (int i = 0; i < lightModelFaultTips.Length; i++)
- {
- lightModelFaultTips[i].SetActive(false);
- }
- faultSelectButtons.SetActive(true);
- faultTools.localPosition = new Vector3(1120, 0, 0);
- faultToolList.ReSetToolList(1);
- }
- else
- {
- if (args.stepIndex == 2)
- {
- faultToolList.ShowChassisCover();
- }
- if (args.stepIndex == 3)
- {
- faultToolList.ShowNetWordCard();
- }
- faultSelectButtons.SetActive(false);
- faultTools.localPosition = new Vector3(920, 0, 0);
- }
- break;
- case Net_FaultType.lightModel:
- for (int i = 0; i < lightModelFaultTips.Length; i++)
- {
- lightModelFaultTips[i].SetActive(false);
- }
- lightModelFaultTips[args.stepIndex].SetActive(true);
- if (args.stepIndex == 0)
- {
- for (int i = 0; i < netWordListFaultTips.Length; i++)
- {
- netWordListFaultTips[i].SetActive(false);
- }
- faultSelectButtons.SetActive(true);
- faultTools.localPosition = new Vector3(1120, 0, 0);
- faultToolList.ReSetToolList(0);
- }
- else
- {
- if (args.stepIndex == 2)
- {
- faultToolList.ShowOpticalFiber();
- }
- if (args.stepIndex == 3)
- {
- faultToolList.ShowLightModel();
- }
- faultSelectButtons.SetActive(false);
- faultTools.localPosition = new Vector3(920, 0, 0);
- }
- break;
- }
- }
- }
|