using ZXK.Framework; using ZXK.UTility; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; using System.Linq; using UnityEngine.SceneManagement; /******************************************************************************* *Create By CG *Function *******************************************************************************/ namespace ZXK.BYSS { public class AppManagement : MonoSingleton { public EnumCtrl.LogoType curLogoType = EnumCtrl.LogoType.LNZB; public EnumCtrl.Type _CurType = EnumCtrl.Type.XHBY; [SerializeField] private HintModel _hintData; public HintModel _HintData { get => _hintData; } [MyReadOnly] public EnumCtrl.Model _TrainExam = EnumCtrl.Model.None; [MyReadOnly] public EnumCtrl.Model _CurModel = EnumCtrl.Model.None; [MyReadOnly] public bool _FirstEnterApp = true;//????????????????? [MyReadOnly]//??????? public AppModel _AppModel = null; [MyReadOnly]//?豸??????? public CognizeModel _CognizeData = null; [MyReadOnly]//ui???? public UIModel _UiPanelData = null; public static Dictionary _ImgDataArray = new Dictionary(); public int _ConnectScore = 0; public int _GasScore = 0; //[HideInInspector] //public StepManager stepManager = null;//流程管理类预制体 //private string stepPrefabPath = "Prefab/StepManager";//StepManager管理类实例化对象加载路径 protected override void AwakeSelf() { base.AwakeSelf(); _AppModel = new AppModel(); StartCoroutine(_AppModel.ReadExcelDataWeb()); _CognizeData = new CognizeModel(); StartCoroutine(_CognizeData.InitDataIEnum()); } private void Start() { _UiPanelData = new UIModel(); _UiPanelData.InitData(); } /// /// ?л??? /// /// public void ChangeModel(EnumCtrl.Model model) { _CurModel = model; switch (_CurModel) { case EnumCtrl.Model.None: break; case EnumCtrl.Model.Home: ChangeState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("HomePanel"); }); break; case EnumCtrl.Model.Select2: UI_Manage.Instance.ShowPanel("Select2Panel"); ChangeState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("Select2Panel"); }); break; case EnumCtrl.Model.Select3: ChangeState(EnumCtrl.Model.Home.ToString(), () => { UI_Manage.Instance.ShowPanel("Select3Panel"); }); break; case EnumCtrl.Model.Cognize: UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Cognize.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("CognizePanel"); }); break; case EnumCtrl.Model.Teach: //教学模式,修改成,带引导按钮的,没有跳步栏的练习模式 _TrainExam = EnumCtrl.Model.Teach; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { //教学模式,始终显示教学引导 UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("JiaoXueYinDaoBtn"); }); break; case EnumCtrl.Model.Train: _TrainExam = EnumCtrl.Model.Train; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); }); break; case EnumCtrl.Model.Exam: _TrainExam = EnumCtrl.Model.Exam; UI_Manage.Instance.Clear(GameObject.Find("Canvas").transform); UI_Manage.Instance.HideAllPanel(GameObject.Find("TopCanvas").transform); UI_Manage.Instance.ShowPanel("BlackMaskPanel", -1, GameObject.Find("TopCanvas").transform); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ClosePanel("BlackMaskPanel"); UI_Manage.Instance.ShowPanel("HoverPanel"); UI_Manage.Instance.ShowPanel("PracticeAndExamPanel"); }); break; case EnumCtrl.Model.Line: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("ConnectPanel"); //教学模式,始终显示教学引导 if (AppManagement.Instance._TrainExam == EnumCtrl.Model.Teach) { UI_Manage.Instance.ShowPanel("JiaoXueYinDaoBtn"); } }); break; case EnumCtrl.Model.Debug: // UI_Manage.Instance.GetPanel("PracticeAndExamPanel") //.GetComponent()._CurTrainExamSceneCtrl.speakManager.ChangeModelAudio("程序调试"); // UI_Manage.Instance.GetPanel("PracticeAndExamPanel") // .GetComponent()._CurTrainExamSceneCtrl.speakManager.ReSetAudioCilp(); ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel(_CurType + "DebugPanel"); }); break; case EnumCtrl.Model.Gas: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { // OnDestroyPrefab(); UI_Manage.Instance.ShowPanel("GasPanel"); //教学模式,始终显示教学引导 if (AppManagement.Instance._TrainExam == EnumCtrl.Model.Teach) { UI_Manage.Instance.ShowPanel("JiaoXueYinDaoBtn"); } }); break; case EnumCtrl.Model.Running: ChangeState(EnumCtrl.Model.Train.ToString() + EnumCtrl.Model.Exam.ToString(), () => { UI_Manage.Instance.ShowPanel("RunningPanel"); //教学模式,始终显示教学引导 if (AppManagement.Instance._TrainExam == EnumCtrl.Model.Teach) { UI_Manage.Instance.ShowPanel("JiaoXueYinDaoBtn"); } }); break; default: break; } } private void ChangeState(string changeToSceneName, System.Action loadedCall) { string curSceneName = SceneManager.GetActiveScene().name; if (curSceneName.Equals(changeToSceneName)) { UI_Manage.Instance.HideAllPanel(); loadedCall?.Invoke(); } else { //UI_Manage.Instance.HideAllPanel(); UI_Manage.Instance.Clear(); //LoadScenesAsyncNoPanel.Instance.LoadSceneAsync(changeToSceneName, loadedCall); //UtilitiesMng.LoadSceneAsync(changeToSceneName, loadedCall); LoadScenes.Instance.LoadScene(changeToSceneName, loadedCall); } } /// /// 加载流程类预制体 /// //public void OnSpawnPrefab() //{ // GameObject stepItem= Instantiate(Resources.Load(stepPrefabPath),transform,false) as GameObject; // stepManager=stepItem.GetComponent(); //} /// /// 销毁流程类预制体 /// //public void OnDestroyPrefab() //{ // DestroyImmediate(stepManager); //} } }