123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using GameFramework;
- using GameFramework.Event;
- using GameFramework.Fsm;
- using GameFramework.Procedure;
- using GameFramework.Resource;
- using UnityEngine;
- using UnityAsync;
- using UnityEngine.EventSystems;
- using UnityEngine.SceneManagement;
- using UnityGameFramework.Runtime;
- using WaitUntil = UnityAsync.WaitUntil;
- public class ProcedureModelView : ProcedureBase
- {
-
- private int studyCenterFormId = -99;
- private int baseStudyFormId = -99;
- private int trainStudyFormId = -99;
- private int examStudyFormId = -99;
- private int coolTrainStudyFormId = -99;//冷却系统
- private int eleTrainStudyFormId = -99;//冷却系统
- private int netTrainStudyFormId = -99;//网络系统
- private int appTrainStudyFormId = -99;//App系统
- private int obTrainStudyFormId = -99;//App系统
- private FocusModelViewCtrl _focusModelViewCtrl;
- private int currentGameMode= 0;
- private int currentBaseStudyType = 0;
- private int currentTrainStudyType = -1;
- protected override void OnInit(IFsm<IProcedureManager> procedureOwner)
- {
- base.OnInit(procedureOwner);
- }
- protected override void OnEnter(IFsm<IProcedureManager> procedureOwner)
- {
- base.OnEnter(procedureOwner);
- GameMain.Event.Subscribe(ChangeGameModeTypeEvent.EventId, ChangeGameMode);
- GameMain.Event.Subscribe(ChangeBaseStudyTypeEvent.EventId,ChangeBaseStudy);
- GameMain.Event.Subscribe(Change3DTopoTypeEvent.EventId, Change3DTopo);
- GameMain.Event.Subscribe(ChangeEleTopoTypeEvent.EventId, ChangeElePar);
- GameMain.Event.Subscribe(ChangeTrainStudyTypeEvent.EventId, ChangeTrainStudy);
- GameMain.Event.Subscribe(LoginResultEvent.EventId,GotoLoginIn);
- studyCenterFormId = GameMain.UI.OpenUIForm("StudyCenter","Base");
-
- }
- protected override void OnUpdate(IFsm<IProcedureManager> procedureOwner, float elapseSeconds, float realElapseSeconds)
- {
- base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
- //RotationCamera();
- }
- private void ChangeGameMode(object sender, GameEventArgs e)
- {
- ChangeGameModeTypeEvent args = (ChangeGameModeTypeEvent)e;
- if (args.type != currentGameMode)
- {
- //关掉其他模块的UI
- switch (currentGameMode)
- {
- case 0:
- if (baseStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(baseStudyFormId);
- baseStudyFormId = -99;
- }
- break;
- case 1:
- if (trainStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(trainStudyFormId);
- trainStudyFormId = -99;
- }
- break;
- case 2:
- if (examStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(examStudyFormId);
- examStudyFormId = -99;
- }
- break;
- case 3:
- if (netTrainStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(netTrainStudyFormId);
- netTrainStudyFormId = -99;
- }
- break;
- case 4:
- if (coolTrainStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(coolTrainStudyFormId);
- coolTrainStudyFormId = -99;
- }
- break;
- case 5:
- if (eleTrainStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(eleTrainStudyFormId);
- eleTrainStudyFormId = -99;
- }
- break;
- case 6:
- if (appTrainStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(appTrainStudyFormId);
- appTrainStudyFormId = -99;
- }
- break;
- case 7:
- if (obTrainStudyFormId != -99)
- {
- GameMain.UI.CloseUIForm(obTrainStudyFormId);
- obTrainStudyFormId = -99;
- }
- break;
- }
- switch (args.type)
- {
- case 0:
- baseStudyFormId = GameMain.UI.OpenUIForm("BaseStudy", "Normal");
- //GameMain.Event.Fire(this,ChangeBaseStudyTypeEvent.Create(GameMain.UI.GetUIForm(baseStudyFormId).GetComponent<BaseStudyForm>().CurrentBaseStudyType));
- GameMain.Event.Fire(this,ChangeBaseStudyTypeEvent.Create(0));
- break;
- case 1:
- trainStudyFormId = GameMain.UI.OpenUIForm("TrainStudy", "Normal");
- GameMain.Event.Fire(this,ChangeTrainStudyTypeEvent.Create(0));
- break;
- case 2:
- examStudyFormId = GameMain.UI.OpenUIForm("ExamStudy", "Normal");
- GameMain.Event.Fire(this, OnBeginExamEvent.Create(UserData.token));
- break;
- case 3:
- netTrainStudyFormId = GameMain.UI.OpenUIForm("NetTrainStudy", "Normal");
- GameMain.Event.Fire(this,ChangeTrainStudyTypeEvent.Create(1));
- break;
- case 4:
- coolTrainStudyFormId = GameMain.UI.OpenUIForm("CoolTrainStudy", "Normal");
- GameMain.Event.Fire(this,ChangeTrainStudyTypeEvent.Create(3));
- break;
- case 5:
- eleTrainStudyFormId = GameMain.UI.OpenUIForm("EleTrainStudy", "Normal");
- GameMain.Event.Fire(this, ChangeTrainStudyTypeEvent.Create(2));
- break;
- case 6:
- appTrainStudyFormId = GameMain.UI.OpenUIForm("AppTrainStudy", "Normal");
- GameMain.Event.Fire(this, ChangeTrainStudyTypeEvent.Create(6));
- break;
- case 7:
- obTrainStudyFormId = GameMain.UI.OpenUIForm("ObTrainStudy", "Normal");
- GameMain.Event.Fire(this, ChangeTrainStudyTypeEvent.Create(5));
- break;
- }
- currentGameMode = args.type;
- }
- }
- private void GotoLoginIn(object sender, GameEventArgs e) {
- LoginResultEvent args = (LoginResultEvent)e;
- switch (args.currentResult) {
- case LoginResultEvent.LoginResult.success:
- baseStudyFormId = GameMain.UI.OpenUIForm("BaseStudy", "Normal");
- currentGameMode = 0;
- SceneManager.LoadScene("Machine");
- currentBaseStudyType = 0;
- currentTrainStudyType = -1;
- break;
- case LoginResultEvent.LoginResult.failure:
- break;
- }
- }
- private void ChangeBaseStudy(object sender, GameEventArgs e)
- {
- ChangeBaseStudyTypeEvent args = (ChangeBaseStudyTypeEvent)e;
- switch (args.type)
- {
- case 0:
- if (SceneManager.GetActiveScene().name != "Machine")
- SceneManager.LoadScene("Machine");
- break;
- case 1:
- if (SceneManager.GetActiveScene().name != "Topology")
- SceneManager.LoadScene("Topology");
- GameMain.Event.Fire(this, Change3DTopoTypeEvent.Create(GameMain.UI.GetUIForm(baseStudyFormId).GetComponent<BaseStudyForm>().CurrentPoloType));
- break;
- case 2:
- if (SceneManager.GetActiveScene().name != "SXZX")
- SceneManager.LoadScene("SXZX");
- break;
- case 3:
- if (SceneManager.GetActiveScene().name != "Machine")
- SceneManager.LoadScene("Machine");
- break;
- }
- }
- private async void Change3DTopo(object sender, GameEventArgs e)
- {
-
- Change3DTopoTypeEvent args = (Change3DTopoTypeEvent)e;
- GameObject particle = GameObject.FindGameObjectWithTag("Particle");
- if (particle != null)
- {
- for (int i = 0; i < particle.transform.childCount; i++)
- {
- particle.transform.GetChild(i).gameObject.SetActive(false);
- }
- particle.transform.GetChild(args.type).gameObject.SetActive(true);
- }
- else {
- await new WaitUntil(() =>
- {
- return SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Topology");
- });
- particle = GameObject.FindGameObjectWithTag("Particle");
- if (particle != null)
- {
- for (int i = 0; i < particle.transform.childCount; i++)
- {
- particle.transform.GetChild(i).gameObject.SetActive(false);
- }
- particle.transform.GetChild(args.type).gameObject.SetActive(true);
- }
- }
- }
- private async void ChangeElePar(object sender, GameEventArgs e)
- {
- ChangeEleTopoTypeEvent args = (ChangeEleTopoTypeEvent)e;
- GameObject particle = GameObject.FindGameObjectWithTag("Particle").transform.GetChild(2).gameObject;
- if (particle != null)
- {
- for (int i = 0; i < particle.transform.childCount; i++)
- {
- particle.transform.GetChild(i).gameObject.SetActive(false);
- }
- particle.transform.GetChild(args.type).gameObject.SetActive(true);
- }
- else
- {
- await new WaitUntil(() =>
- {
- return SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Topology");
- });
- GameObject particle2 = GameObject.FindGameObjectWithTag("Particle").transform.GetChild(2).gameObject;
- if (particle2 != null)
- {
- for (int i = 0; i < particle2.transform.childCount; i++)
- {
- particle2.transform.GetChild(i).gameObject.SetActive(false);
- }
- particle2.transform.GetChild(args.type).gameObject.SetActive(true);
- }
- }
- }
- private void ChangeTrainStudy(object sender, GameEventArgs e)
- {
- ChangeTrainStudyTypeEvent args = (ChangeTrainStudyTypeEvent)e;
- switch (args.type)
- {
- case 0:
- if (SceneManager.GetActiveScene().name != "TrainStudy")
- SceneManager.LoadScene("TrainStudy");
- break;
- case 1:
- if (SceneManager.GetActiveScene().name != "TrainStudy2")
- SceneManager.LoadScene("TrainStudy2");
- break;
- case 2:
- if (SceneManager.GetActiveScene().name != "TrainStudy4_1")
- SceneManager.LoadScene("TrainStudy4_1");
- break;
- case 3:
- if (SceneManager.GetActiveScene().name != "TrainStudy3_1")
- SceneManager.LoadScene("TrainStudy3_1");
- break;
- case 5:
- if (SceneManager.GetActiveScene().name != "TrainStudy5_1")
- SceneManager.LoadScene("TrainStudy5_1");
- break;
- case 6:
- if (SceneManager.GetActiveScene().name != "TrainStudy6")
- SceneManager.LoadScene("TrainStudy6");
- break;
- }
- }
- protected override void OnLeave(IFsm<IProcedureManager> procedureOwner, bool isShutdown)
- {
- base.OnLeave(procedureOwner, isShutdown);
- GameMain.Event.Unsubscribe(ChangeGameModeTypeEvent.EventId, ChangeGameMode);
- GameMain.Event.Unsubscribe(ChangeBaseStudyTypeEvent.EventId,ChangeBaseStudy);
- GameMain.Event.Unsubscribe(Change3DTopoTypeEvent.EventId, Change3DTopo);
- GameMain.Event.Unsubscribe(ChangeEleTopoTypeEvent.EventId, ChangeElePar);
- GameMain.Event.Unsubscribe(ChangeTrainStudyTypeEvent.EventId, ChangeTrainStudy);
- GameMain.Event.Unsubscribe(LoginResultEvent.EventId, GotoLoginIn);
- //暂时没有切流程的先不写关闭全部UI
- // GameMain.UI.CloseUIForm(baseStudyFormId);
- // GameMain.UI.CloseUIForm(studyCenterFormId);
- // GameMain.UI.CloseUIForm(trainStudyFormId);
- }
- private void InitViewCtrl(string assetName, object asset, float duration, object userData)
- {
- Debug.Log(duration);
- }
- private void Fail(string assetName, LoadResourceStatus status, string errorMessage, object userData)
- {
- Debug.Log($"{errorMessage}");
- }
- }
|